12345678_1_2345678_2_2345678_3_23456789_4_2345678_5_2345678_6_2345678_7_2345678_8

Speakeasy, a ButtPlug for BackOrifice
~~~~~~~~~
Version 0.1 BETA
Concieved and written by Brian Enigma <enigma@netninja.com>
"Speakeasy" title, creative consulting, brainstorming, giving chicks
  massages, and general piercing coolness by A.j. Effin ReznoR <spork@exo.com>

Abstract
~~~~~~~~
    I just got back from DefCon 6.0 and witnissed all the hype and fanfare for
BackOrifice.  If you do not already know how cool and wonderful BackOrifice is,
you will have to go to http://www.cultdeadcow.com to witness it in its full
glory.

Description
~~~~~~~~~~~
    Speakeasy is a simple, yet invisible, IRC client for BO.  The basic
functionality contained within Speakeasy is this:
 > You initially set it up with an IRC server, port number, and optional
   message
 > Once started, it attempts to connect to the IRC server until a one can be
   established
 > It logs in with a random user name ("BO_" followed by 6 random letters)
 > The channel #BO_OWNED is created/joined
 > An opening greeting is broadcast to the group
 > The user's IP address and message is repeatedly broadcast to the group
   every 2 minutes.

Installation
~~~~~~~~~~~~
    Installation is quite simple.  Simple use BOConfig, as you would at
any other time.  When you get to the question
 "Default plugin to run on startup"
Simply type in:

 Speakeasy.dll:_start

(or whatever you have renamed it to).  The item before the colon is the
file name to run.  The item after the colon is the exported function to
run (which must be "_start").

    The next question
 "Arguments for plugin"
This should be the following:
IRC_SERVER:PORT:OPTIONAL_MESSAGE
For instance:
irc.colorado.edu:6667:This is Freddy's machine
 -or-
irc.ucdavis.edu:6667:Port 6969, Password "NINJA"
 -or-
irc.uci.edu:6667

    Next, you will have to attach the DLL to the installer.  "File to
attach" should bt Speakeasy.DLL (or whatever it has been renamed to).  
"Write file as" should probably be the same.

Limitations
~~~~~~~~~~~
    There is very little error-retry code presently.  If the IRC client
gets disconnected from the IRC server for any reason, it cannot retry
until the BO machine is rebooted (thereby starting the plugin from scratch
again).  The client can also be easily confused--if it happens to pick the
same name as someone already logged into the server, it will happily ignore
the server's error message and believe itself to be logged in.
    There also may be a problem with the Dialup Networking "connect to the
internet/your ISP" dialog box popping up when installed on a DUN-only (non 
LAN) machine.  I have been unable to test this configuration because of my
busy work schedule.

Source Code
~~~~~~ ~~~~
    Source code is included.  It is still in its beta stages, so expect it
to change.  Any bug reports or code suggestions would be appreciated, and 
may be sent to enigma@netninja.com.

Signature
~~~~~~~~~
    You will notice that my code is PGP signed (with DSS, since most
windows clients cannot support RSA any more).  My key is available from
several keyservers, including certserver.pgp.com and pgpkeys.mit.edu.

Conclusion
~~~~~~~~~~
    Have fun.  Do not cause too much trouble.  Thanks, CDC for making such
a great "tool."
