Agobot

[1] Compilation:

[2] Configuration:

[3] Installation:

[4] Runtime:

[5] Private version:



[1] Compilation:

[1.1] What software is needed for compilation ?
This really depends on the version you want to compile. There are 3 compilers currently supported on Win32, Microsoft's Visual C++ 6, MingW32 and the Borland C++ Compiler. Since the MingW32 version is currently incomlete, and the Borland version only built but crashed on startup, the only real support I'm giving at the moment is for Microsoft Visual C++ 6. Additionally the bot has support for Linux (or more generally POSIX compatible systems), it was tested using gcc 3.2.x and 3.3.x.

The bot also needs a copy of OpenSSL, but this is already included as a static library for Win32, Linux and MingW32. You can get OpenSSL from http://www.openssl.org/. There will be instructions on how to build your own static library soon.

[1.2] How to use Visual Studio ?
Get the Visual Studio 6 SP5 from here, newest Platform SDK from here (you don't need the full 129mb download, only Core SDK/Build Environment) and the Processor Pack from here. Install all 3. Add the following paths to "Tools|Options...|Directories" in Visual Studio (be sure to include them on top of the list):

Executables

Includes

Libraries

You should be ready to compile now.

[1.3] How to use MingW32 ?
Soon to be available.

[1.4] How to use BCC ?
Soon to be available.

[1.5] How to use GCC ?
Execute this:
gcc -v 2>&1 | grep "gcc version"
and check if the reported version is one of the supported version, if it isn't, you can still try and compile, but you should consider notifying me so I can update my documentation. I'm always looking for people who test my bot on Linux flavors I didn't test it on.
Edit Makefile to enable optimization or debug, you just have to remove some # signs to uncomment the line. After this type "make", it will start compilation, and if everything works well you will end up with an agobot3 executable that you can test using ./agobot3 if you're using bash.
Beware that the Linux version isn't a finished bot, but it mostly works. It has no installer to add itself to SysV startup at the moment, but I'm planning on fixing this in reasonable time.

[1.6] Which systems are tested ? 
Debian 3.0 2.4.20-3-k6 libc6 / gcc version 3.3.1 20030728 (Debian prerelease)
Slackware 9.0 2.4.20 libc6 / gcc version 3.2.2
FreeBSD 4.8 ???
libc6 / gcc version 3.3.1 20030728 (Debian prerelease) / compiled in debian
SuSe 8.1 2.4.21 libc6 / gcc version 3.2
Windows 2000 Server English SP4
Visual Studio 6.0 SP5
Windows 2000 Server English SP3
Visual Studio 6.0 SP5
Windows 2000 Pro English SP4
Visual Studio 6.0 SP5
Windows 2000 Pro English SP3 Visual Studio 6.0 SP5
Windows 2000 Pro German SP1 Visual Studio 6.0 SP5
Windows 2003 Server English SP0 Visual Studio 6.0 SP5
Windows 2003 Server English SP1 Visual Studio 6.0 SP5
Windows XP Pro English SP0 Visual Studio 6.0 SP5
Windows XP Home Polish
SP1
Visual Studio 6.0 SP5

Contact me if you tested on any system that isn't in this list yet.

[1.7] What to do if I'm getting compilation errors ?
First: don't worry about compiler warnings, they are pretty common.
This can have multiple causes. I'll try to list a few here.

C:\agobot3\nbscanner.cpp(120) : error C2440: '=' : cannot convert from 'unsigned short [260]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
C:\agobot3\nbscanner.cpp(121) : error C2440: '=' : cannot convert from 'unsigned short [1]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

Something like this means that you haven't installed the Platform SDK the right way, goto [1.2] again, and be especially careful to read the bold parts. What I want to say is that you have to add the Platform SDK ON TOP of the list.

C:\agobot3\main.h(31) : fatal error C1083: Cannot open include file: 'psapi.h': No such file or directory

Same as above, the SDK files were not found, cause psapi.h is in the SDK. goto [1.2] again, and be sure to install it right.

LINK : warning LNK4089: all references to "GDI32.dll" discarded by /OPT:REF
ftplib\ftplib.c(415) : warning C4761: integral size mismatch in argument; conversion supplied

You can ignore this warning, I got it too, and it was never a problem for me.

[2] Configuration:

[2.1] How to configure ?
Copy \configs\config-sample.cpp to \config.cpp. Edit the file to configure the bot.

[2.2] How do I get a MD5 password ?
Win32: Open agobot3.dsw, right click the getmd5 project, select "Build"
Linux: cd getmd5 ; make

After that there is a getmd5 executable in \bin\<platform> which you have to start like this:

V:\bin\win32>getmd5.exe password
MD5 of "password" is "5F4DCC3B5AA765D61D8327DEB882CF99"
V:\bin\win32>

Copy the string "5F4DCC3B5AA765D61D8327DEB882CF99" into your config as the password.

[2.3] How to crypt strings for config file usage ?
Win32: Open agobot3.dsw, right click the crypt project, select "Build"
Linux: cd crypt ; make

After that there is a crypt executable in \bin\<platform> which you have to start like this:

V:\bin\win32>crypt text 10 blabla
igjigj
V:\bin\win32>

If the crypted string contains non-printable characters, start it like this:

V:\bin\win32>crypt hex 10 blabla
\x69\x67\x6A\x69\x67\x6A
V:\bin\win32>

Set the CVar you want to have crypted in config.cpp like this:

g_cMainCtrl.m_cCVar.RegisterCvar(&bot_id, "bot_id", "\x69\x67\x6A\x69\x67\x6A", "Bot - Current ID", false, true, 10);
instead of:
g_cMainCtrl.m_cCVar.RegisterCvar(&bot_id, "bot_id", "\x69\x67\x6A\x69\x67\x6A", "Bot - Current ID", false, false, 0);

[3] Installation:

[3.1] It doesn't start, what do I do ?
Compile the bot in debug mode, this is either done by selecting "agobot3 - Win32 Debug" from "Build|Set Active Configuration..." in Visual Studio, or by editing Makefile and uncommenting the debug lines in Linux. Start the bot with these command line parameters: agobot3 -debug -debuglevel 10. It will popup a DOS (actually only the Win32 console) window that contains all the debug info the bot is giving. If you can't find the error using this information yourself, send me a log.

[4] Runtime:

[4.1] How to use it ?
First use .login <user> <password> to login to the bot. After that /msg one of the bots with ".commands.list", this will cause the bot to reply with its command list.

[4.2] Where can I get help for the commands ?
Check out the command reference here.

[5] Private version:

[5.1] How do I get the private version ?
Contact me, you will either have to make good contributions of code or pay me for it, cause I can't do all of this for free (there's lot of time involved).

[5.2] What about the leaked one ?
This software was distributed without my permission, that's why it's really buggy, but don't try asking me for help with it, cause I already know about the bugs and am developing a version that is much newer and better (i.e. the new scanner can scan WinXP, which is a big number of hosts). If you really want to use the leaked version I cannot stop you, but beware that there's no support, and the bot may crash unexpectedly and/or not remove it and/or not shutdown threads correctly and/or not be able to create new threads at all.

Nobody in who isn't insane will give out his scanner if it isn't outdated, cause else everyone will be able to scan with it making the exploit effectively much more ineffective. Also the scanner (and probably other features of the private version) is my source for money, so that's another reason I won't give it out. If you want to buy the code, you will get all updates ill do to the private version, which will also include new exploits every few months (though i cannot guarantee that). Also there will be a premium version with all kinds of scanners for Linux/Unix based systems included, but that will have to wait till I have the Linux version fully working (i.e. Autostart isn't there yet).

[5.3] What's the price for the private version ?
Minimum:
Standard:
Premium:
I accept payment through paypal.

I might also be willing to sell/rent/share bots but I don't have a price set, contact me and we can negotiate one.

[5.4] I don't have enough money to buy it, what to do ?
Contact me with an offer for something I really need, or if you're living in a poor country I could negotiate a discount price with you.

 - by Ago