Rattler v1.0
Plugin For Back Orifice 2000
Copyright (c) 1999 by AdTropis
Licensed under the GNU Public License (GPL)
--------------
Introduction
--------------
Rattler is a Back Orifice 2000 plugin that sends e-mail messages to a
specified user when the IP address of the Back Orifice host machine
changes. This can be extremely useful for users who have Back Orifice
servers running on dial-up machines and/or machines configured for DHCP.
-------
Files
-------
The following files should be included in the Rattler plugin
distribution zip file (Rattler10.zip):
Rattler.Dll - The plugin dll
Rattler.Txt - This text file
RattlerSrc.Zip - The source code to Rattle
The following files should be included in the Rattler source
distribution zip file (RattlerSrc.Zip):
Rattler.cpp - Rattler C++ source
Rattler.h - Rattler header file
Rattler.def - DLL exports
config.cpp - Config.cpp from BO2K SDK
Rattler.dsw - Visual C++ workspace file
Rattler.dsp - Visual C++ project file
Rattler.Txt - This text file
If there are files missing, please refer to the official Rattler
homepage to download the full distribution.
--------------
Installation
--------------
Installation is a snap. Simply unzip the 'Rattler10.zip' file into
any directory. Then copy the 'Rattler.Dll' file to your Back Orifice
2000 plugin directory. Now when you create server installation packages
you can insert the 'Rattler.Dll' plugin into the server package.
If you want to tweak parts of Rattler (or whatever) simply unzip the
'RattlerSrc.Zip' file into a seperate directory. A Visual C++ workspace
file is included for easy development in Visual C++ 5.0/6.0.
----------------------
Plugin Configuration
----------------------
When the plugin is inserted into a server installation package, there
are several parameters that need to be set to ensure proper usage of the
plugin. Each parameter can be accessed by using the Rattler menu
Configuration parameters are list below:
BOOL Run On Plugin Load: Rattler will startup when the plugin is
loaded
NUMERIC Query Delay: Specifies the number of seconds to wait
between each IP check
STRING Mail Host: Specifies the SMTP (not POP!) mail host
to use in order to send e-mail messages
NUMERIC Mail Port: Specifies the port number of the SMTP mail
host to use (probably won't need to change it)
STRING Mail From: Specifies the name to use in the 'From:'
field of the e-mail message
STRING Rcpt To: Specifes the name to use in the 'To:' field
of the e-mail message (must be a valid e-mail
address!)
STRING Subject: Specifies the subject of the message when
an e-mail message is sent
NUMERIC Retries: Specifies the number of connection retries
when send an e-mail message
NUMERIC Retry Delay: Specifies the number of seconds to wait
between connection retries.
BOOL Notify On Startup: If TRUE Rattler will send an e-mail after it
has retrieved the first IP address block. If
FALSE, Rattler will only send an e-mail after
an IP address change has been detected.
BOOL Notify Local Hosts: If TRUE Rattler will send an e-mail message
for local network IP address changes (* see
below for more on local networks addresses)
BOOL Use Debugging: If TRUE Rattler will send messages to a
debugging file (specified by 'Debugging File')
STRING Debugging file: Specifies the location of the debugging file
to use (* see below on debugging)
--------------------------------------
Server-Side Configuration & Options
--------------------------------------
Rattler also allows for 'dynamic' configuration once it is loaded into
the Back Orifice server. Once the Back Orifice server is started, just log
into it with the client program and then you can change all of the Rattler
options through the Rattler menu. Here is a list of the menu options:
Status Shows the status of the Rattler plugin as well as the
number of attempted messages and messages sent and the
current state of the IP table. It also allows a user
to manually send an e-mail message immediately.
Configuration Shows the current configuration set for the Rattler
plugin. Also allows the user to load the default
configuration is desired.
Config: Status Allows the user to shutdown or startup the Rattler
service. Also allows for toggling the 'Run On Load'
option.
Config: Host Allows for configuration of the SMTP mail host to
send mail to. The port and server name can be changed.
Config: Users Allows for changing the names in the 'MAIL FROM' and
'RCPT TO' options
Config: Subject Allows configuration of the subject to be sent in each
e-mail that is sent by Rattler.
Config: Options Allows the user to change the current connect retry
count, the 'Notify Startup' option, and the 'Notify
Local' option.
Config: Delays Allows for changing the 'Query Delay' and 'Retry Delay'
options.
Config: Debug Allows for enabling/disabling debugging and changing
the location of the debugging file.
All changes take effect immediately. However, when changing the 'Notify
Local' option, a mail message will NOT be sent unless a local IP is changed or
the user does so manually.
All options are also stored in the registry so that any configuration
changes will be in effect the next time that the plugin is started. All
options are stored under HKEY_LOCAL_MACHINE\SOFTWARE\WyrmSoft\Rattler.
------------------------
Client Side Operations
------------------------
Rattler is a server-side-only plugin. There are no client options that can
be set.
--------------
How It Works
--------------
Basically the operation of Rattler is very simple. It simply obtains
a block of IP addresses that correspond to the machine on which it is
running. If there have been any additions to this IP table Rattler sends
an e-mail message containing the current IP table to a pre-defined recipient.
By default Rattler does not send e-mail regarding changes to local
network addresses. But just what is a local network address? Well, the
first (and, hopefully, most obvious) is, of course, localhost (127.0.0.1).
However, there are three other sets of network addresses that I call local:
10.0.0.0 MASK 255.0.0.0 Class A
172.16.0.0 - 172.31.0.0 MASK 255.255.0.0 Class B
192.168.0.0 - 192.168.255.0 MASK 255.255.255.0 Class C
These three network addresses are supposed to be used on LANs that do not
have a direct connection to the internet. Therefor, I consider them local.
Of course, by setting the 'Notify Local' option to TRUE, changes to local
network addresses will make Rattler send an e-mail message (this might be
good for machines that are configured for DHCP).
-----------
Debugging
-----------
You probably won't have to use the debugging option until you run into
problems. Be prepared, though. The debugging option will generate alot of
messages, especially if the query delay is set to a low value.
If you use the debugging option and notice that there is a fault in the
Rattler plugin, please let me know and I'll fix it as fast as I can.
-------------
Development
-------------
The source code provided in the Rattler distribution is free for you
to modify according to the terms of the GNU Public License. Feel free
to make any changes you see fit. If you do make changes, please send them
to me. I would very much like to hear your comments on my work.
The 'Rattler.Dll' file was compiled using Visual C++ 5.0.
------------
Conclusion
------------
Thanks go out to The Cult of the Dead Cow for making Back Orifice as well
as Brian Enigma for his work on Butt Trumpet 2000 (from which I got a few
snippets of code).
Questions or comments? Please send me an e-mail: mataru@mail.airmail.net
Enjoy!
- AdTropis -