bump...
now fully open sourced...
now fully open sourced...
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> //close() socket
#include <string.h>
#include <ctype.h> //isprint()
#include <stdarg.h> //send va_ function
#include <stdint.h> //INT32 16 8...
//#include <sys/timeb.h> //gettickcount alternative
#include <time.h>
#ifdef _WIN32 //SOCKET
#include <winsock2.h>
#include <winsock.h>
#include <windows.h>
#else
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h> //inet_addr()
#endif
/*
PATH_MAX (defined in limits.h)
FILENAME_MAX (defined in stdio.h)
both of these are set to 4096 on my system (x86 Linux).
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef long long LONGLONG;
typedef int LONG;
typedef unsigned short WORD;
typedef unsigned char* PBYTE;
typedef unsigned long* PDWORD;
typedef long long* PLONGLONG;
typedef int* PLONG;
typedef void* LPVOID;
typedef unsigned short* PWORD;
*/
extern int SB;
#ifndef BOT_H
#define BOT_H
#include "thread.h"
class Bot : public thread
{
public:
bool spingbb;
static char LDFile0[FILENAME_MAX];
static char D2File[4][FILENAME_MAX];
static char SCFile[4][FILENAME_MAX];
static char W2File[4][FILENAME_MAX];
static char W3File[4][FILENAME_MAX];
static char Language[11];
static char ACountry[11];
static char Country[31];
static int D2Byte;
static int SCByte;
static int W2Byte;
static int W3Byte;
static char BPlug[5];
static int SPing;
static bool Ping0;
static bool Ping1;
static bool Dump;
static bool Auto;
static char CMD[255];
static void getVAR(int num, char buf[]);
#ifdef _WIN32
WSADATA wsaData;
sockaddr_in h;
SOCKET sock;
#else
int sock;
#endif
char VFile[4][FILENAME_MAX];
char Username[255];
char Password[255];
char Server[255];
char Channel[255];
char CDKey[27];
char Client[9];
int VByte;
int Delay;
bool Connected;
char strname[255];
int ClientToken;
int ServerToken;
int place, PSB, CLIST;
char buff[2048];
unsigned int buflen;
Bot();
void SOCK_CON();
void SOCK_DISCON();
bool SOCK_CREATE();
void SOCK_HANDLER();
void run();
void readconsoleshit();
void getinput(char* blah);
void Login();
void hex_print(char* , int length);
void hexdump(char *pAddressIn, int le);
int Send(char *szFmt, ...);
void Mandate(char* a, char s[], bool d);
void Mandate2(int n, char* a, char* s, bool d);
void BVDispatch(char *user, char *txt, unsigned long VAR[]);
void CDispatch(char *);
void CVDispatch(char *pszEvent, int pnEventId, char *pszSpeaker, unsigned long puFlags, char *pszEventText);
void EID_HANDLER(char *pszEvent, int *pnEventId, char *pszSpeaker, unsigned long *puFlags, char *pszEventText);
void EID_USER(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_JOIN(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_FLAG(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_LEFT(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_TALK(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_CHAN(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_PMSG(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_INFO(char *szSpeaker, unsigned long uFlags, char *szEventText);
void EID_NAME(char *szSpeaker, unsigned long uFlags, char *szEventText);
void RP_TEXT(unsigned char PID,char *szFmt, ...);
void RP_HANDLER(unsigned char PID, char *DATA, short DATALEN);
void RP_0x09(char *DATA, short DATALEN);
void RP_0x0A(char *data);
void RP_0x0B(char *data);
void RP_0x0F(char *data);
void RP_0x25(char *data);
void RP_0x3A(char *data);
void RP_0x3D(char *data);
void RP_0x46(char *data);
void RP_0x50(char *data);
void RP_0x51(char *data);
void SP_0x00();
void SP_0x09();
void SP_0x0A();
void SP_0x0B();
void SP_0x0C(int ss,char *data);
void SP_0x0E(char *data);
void SP_0x14();
void SP_0x25(char *data);
void SP_0x3A();
void SP_0x3D();
void SP_0x46();
void SP_0x50();
void SP_0x51(char *KeyHash, char *exeInfo, unsigned long exeVersion, unsigned long Checksum, unsigned long, unsigned long);
void ABYTE(unsigned char data);
void AWORD(unsigned short data);
void ADWORD(unsigned long data);
void ASTRING0(char* data);
void ASTRING(char* data);
void AVOID(void* data, unsigned int len);
void APACKET(unsigned char PacketID);
void APACKET0(char *lpszFmt, ...);
};
#endif
#include "bot.h"
void Bot::ABYTE(unsigned char data)
{
*(buff + buflen) = data;
buflen++;
}
void Bot::AWORD(unsigned short data)
{
*(unsigned short *)(buff + buflen) = data;
buflen += 2;
}
void Bot::ADWORD(unsigned long data)
{
*(unsigned long *)(buff + buflen) = data;
buflen += 4;
}
void Bot::ASTRING(char* data)
{
strcpy(buff + buflen, data);
buflen += strlen(data);
}
void Bot::ASTRING0(char* data)
{
ASTRING(data);
ABYTE(0);
}
void Bot::AVOID(void* data, unsigned int len)
{
memcpy(buff + buflen, data, (size_t)len);
buflen += len;
}
void Bot::APACKET(unsigned char PID)
{
buff[1] = PID;
*(unsigned short *)(buff + 2) = buflen;
send(sock, buff, buflen, 0);
if((PSB == SB) && (Dump==true))
hexdump(buff,buflen);
buflen = 4;
}
void Bot::APACKET0(char *Data, ...)
{
char buf[256];
va_list argptr;
va_start(argptr, Data);
vsprintf(buf, Data, argptr);
va_end(argptr);
if (send(sock, buf, strlen(buf), 0) < 0)
exit(1);
}
#include "bot.h"
void Bot::Mandate(char* USER, char DATA[], bool CMDED)
{
char cmdvar[255];
char ooo[255];
if(CMDED == true)
DATA=strtok(DATA, "/");
else
DATA=strtok(DATA, CMD);
printf("DATA: %s\n",DATA);
if (DATA == NULL)
{
printf("ERROR NULL COMMAND DATA\n");
return;
}
strcpy(ooo, "/");
strcat(ooo, DATA);
DATA=strtok(DATA, " ");
if (DATA == NULL)
{
printf("ERROR NULL COMMAND CMDVAR\n");
return;
}
printf("cmd: %s\n",DATA);
int x = strcspn(DATA," ");
strcpy(cmdvar, DATA + x+1);
printf("cmdvar: %s\n",cmdvar);
if(!strcmp(DATA,"join"))
Mandate2(00, USER,cmdvar,CMDED);
else if(!strcmp(DATA,"game") )
Mandate2(01, USER,cmdvar,CMDED);
else
{
printf("ooo: %s\n",ooo);
if(!strcmp(Client,"TAHC"))
APACKET0("%s\r\n", ooo);
else
SP_0x0E(ooo);
}
}
void Bot::Mandate2(int num, char* USER, char DATA[], bool CMDED)
{
switch (num)
{
case 00: SP_0x0C(2,DATA); return;
case 01: SP_0x09(); return;
default: break;
}
}
#include "bot.h"
void Bot::RP_TEXT(unsigned char PID, char *DATA, ...)
{
if((PSB == SB))
{
char buf[2048];
va_list argptr;
va_start(argptr, DATA);
vsprintf(buf, DATA, argptr);
printf("|0x%02X| %s", PID, buf); //"|%#02X|" will produce the 0X46
va_end(argptr);
}
}
void Bot::RP_HANDLER(unsigned char PID, char *DATA, short DATALEN)
{
switch (PID)
{
case 0x00: SP_0x00(); break;
case 0x09: RP_0x09(DATA, DATALEN); break;
case 0x0A: RP_0x0A(DATA); break;
case 0x0B: RP_0x0B(DATA); break;
case 0x0F: RP_0x0F(DATA); break;
case 0x25: RP_0x25(DATA); break;
case 0x3A: RP_0x3A(DATA); break;
case 0x3D: RP_0x3D(DATA); break;
case 0x46: RP_0x46(DATA); break;
case 0x50: RP_0x50(DATA); break;
case 0x51: RP_0x51(DATA); break;
//case 0x5E: RP_0x5E(DATA); break;
default: printf("unhandled packet: ");if(Dump==false) hexdump(DATA,DATALEN); break;
}
}
void Bot::SP_0x00()
{
APACKET(0x00);
}
void Bot::RP_0x09(char *DATA, short DATALEN)
{
if(Dump==false) {hexdump(DATA,DATALEN);}
unsigned long sum,status;
unsigned short gametype[30];
unsigned short paramet[30];//?
unsigned long langid[30];
unsigned short ipfamily[30];//af_inet
unsigned short ipport[30];
unsigned long iphost[30];
unsigned long ipsinzero1[30];
unsigned long ipsinzero2[30];
unsigned long gamestatus[30];
unsigned long gameelapsedtime[30];
char *gamename;
char *gamepass;
char *gamestat;
sum = ( *(unsigned long *)(DATA + 4) );
printf("\nthe amount of games listed %lu\n",sum);
if(sum==0)
{
status = ( *(unsigned long *)(DATA + 8) );
printf("status of recieved 0x09 packet %lu\n",status);
switch(status)
{
case 0: printf("ok\n"); break;
case 1: printf("game doesnt exist\n"); break;
case 2: printf("incorrect password\n"); break;
case 3: printf("game full\n"); break;
case 4: printf("game already started\n");break;
case 6: printf("too many server requests\n"); break;
default:printf("no idea what when wrong\n"); break;
}
}
else
{
int prevpacket=0;
DATA= DATA+ 8;
for (int b=0; b < sum; b++)
{
gametype[b] = ( *(unsigned short *)(DATA + prevpacket) );
printf("gametype: %hu\n",gametype[b]);
paramet[b] = ( *(unsigned short *)(DATA + prevpacket + 2) );
printf("paramet: %hu\n",paramet[b]);
langid[b] = ( *(unsigned long *)(DATA + prevpacket + 4 ) );
printf("langid: %lx\n",langid[b]);
ipfamily[b] = ( *(unsigned short *)(DATA + prevpacket + 8) );
printf("ipfamily: %hu\n",ipfamily[b]);
ipport[b] = ( *(unsigned short *)(DATA + prevpacket + 10) );
printf("ipport: %hu\n",ipport[b]);
iphost[b] = ( *(unsigned long *)(DATA + prevpacket + 12 ) );
printf("iphost: %lu\n",iphost[b]);
ipsinzero1[b] = ( *(unsigned long *)(DATA + prevpacket + 16 ) );
printf("ipsinzero1: %lu\n",ipsinzero1[b]);
ipsinzero2[b] = ( *(unsigned long *)(DATA + prevpacket + 20 ) );
printf("ipsinzero2: %lu\n",ipsinzero2[b]);
gamestatus[b] = ( *(unsigned long *)(DATA + prevpacket + 24 ) );
printf("gamestatus: %lu\n",gamestatus[b] );
gameelapsedtime[b] = ( *(unsigned long *)(DATA + prevpacket + 28 ) );
printf("gameelapsedtime: %lu\n",gameelapsedtime[b]);
gamename = DATA + prevpacket + 32;
printf("gamename: %s\n",gamename);
gamepass = DATA + (strlen(gamename)) + prevpacket + 33;
printf("gamepass: %s\n",gamepass);
gamestat = DATA + (strlen(gamename)) + (strlen(gamepass)) + prevpacket + 34;
printf("gamestat: %s\n",gamestat);
prevpacket += (strlen(gamename)) +(strlen(gamepass)) + (strlen(gamestat)) + 35;
}
}
}
void Bot::SP_0x09()
{
AWORD(0x0A);
AWORD(0x0);
ADWORD(0xFFFF);
ADWORD(0);
ADWORD(0x09); //number of game
ASTRING0("");
ASTRING0("");
ASTRING0("");
APACKET(0x09);
}
void Bot::RP_0x0A(char *DATA)
{
if(Connected == false)
Connected = true;
strcpy(strname,DATA+4);
RP_TEXT(DATA[1], "%s",strname );
}
void Bot::SP_0x0A()
{
ASTRING0(Username);
ABYTE(0x00);
APACKET(0x0A);
}
void Bot::RP_0x0B(char *DATA)
{
char blah = DATA[1];
DATA += 4;
while( *DATA != 0 )
{
RP_TEXT(blah, "%s",DATA );
DATA += strlen( DATA ) + 1;
}
}
void Bot::SP_0x0B()
{
ADWORD(0);
APACKET(0x0B);
}
void Bot::SP_0x0C(int ss, char *DATA)
{
ADWORD(ss); //0x02 to force join 0x01 to join broodwar on connect
ASTRING0(DATA);
APACKET(0x0C);
}
void Bot::SP_0x0E(char *DATA)
{
ASTRING0(DATA);
APACKET(0x0E);
}
void Bot::RP_0x0F(char *DATA)
{
char *USER;
char* TEXT;
unsigned long VAR[6];
for (int b=0; b < 6; b++)
VAR[b] = ( *(unsigned long *)(DATA + 4 + (4*b)) );
USER = DATA + 28;
TEXT = DATA + (strlen(USER)) + 29;
switch(VAR[0])
{
case 0x1: EID_USER(USER, VAR[1], TEXT); break;
case 0x2: EID_JOIN(USER, VAR[1], TEXT); break;
case 0x3: EID_LEFT(USER, VAR[1], TEXT); break;
case 0x4: break;
case 0x5: break;
case 0x6: break;
case 0x7: EID_CHAN(USER, VAR[1], TEXT); break;
case 0x9: break;
case 0xA: break;
case 0xD: break;
case 0xE: break;
case 0xF: break;
case 0x12: break;
case 0x13: break;
case 0x17: break;
case 0x18: break;
case 0x19: break;
default: if(Dump==false) hexdump(DATA,2500); return;
}
if(PSB == SB) BVDispatch(USER, TEXT, VAR);
}
void Bot::SP_0x14()
{
ASTRING(BPlug);
APACKET(0x14);
}
void Bot::RP_0x25(char *DATA)
{
if((Ping1 == true) || (Ping0 == true)) return;
if((SPing != 0) && (spingbb == false))
{
spingbb = true;
double waittime = (double)SPing/60;
RP_TEXT( DATA[1], "SPOOFING PING, WAITING %g MINUTES...\n", waittime); // sping=1800 -> 30min 1800031ms
sleep(SPing); // |0x0F-01| 0:1800016 sit0 [PXES 0 0 0 0 0 0 0 0 PXES] ||||| 1900 ---> |0x0F-17| 0:1900063 sit0 test
RP_TEXT( DATA[1], "SPOOFING COMPLETE\n",0);
}
DATA+=4;
SP_0x25(DATA);
}
void Bot::SP_0x25(char *DATA)
{
AVOID(DATA,4);
APACKET(0x25);
}
void Bot::SP_0x3A()
{
char buf[20];
doubleHashPassword(Password, ClientToken, ServerToken, buf);
RP_TEXT(0x3A, "dhashpw(\"%s\", 0x%08X, 0x%08X) = ",Password, ClientToken, ServerToken);
hex_print(buf, strlen(buf));
ADWORD(ClientToken);
ADWORD(ServerToken);
AVOID(buf, 20);
ASTRING0(Username);
APACKET(0x3A);
}
void Bot::RP_0x3A(char *DATA)
{
switch (*(unsigned long *)(DATA + 4))
{
case 0:
SP_0x14();
SP_0x0A();
SP_0x0B();
SP_0x46();
SP_0x0C(1,Channel);
//SP_0x0C(2,Channel);
return;
case 1: SP_0x3D(); return;
case 2: RP_TEXT(DATA[1], "login failed \n", 0); break;
case 6: RP_TEXT(DATA[1], "ACCOUNT closed \n", 0); break;
default: RP_TEXT(DATA[1],"unknown 0x3A exiting %s\n",DATA + 8); break;
}
exit(1);
}
void Bot::RP_0x3D(char *DATA)
{
switch (*(unsigned long *)(DATA + 4))
{
case 0: RP_TEXT(DATA[1], "ACCOUNT CREATED \n", 0); break;
case 2: RP_TEXT(DATA[1], "INVALID CHARACTERS\n ", 0); break;
case 3: RP_TEXT(DATA[1], "CONTAINS BANNED WORD\n ", 0); break;
case 4: RP_TEXT(DATA[1], "ALREADY EXISTS\n ", 0); break;
case 6: RP_TEXT(DATA[1], "TOO SHORT AN CHARACTERS\n ", 0); break;
default: RP_TEXT(DATA[1], "UNKNOWN 0x3D %s\n",DATA + 8); break;
}
exit(1);
}
void Bot::SP_0x3D()
{
char p[255];
for(int i=0; i < strlen(Password); i++)
{
p[i] = Password[i];
if (isupper(p[i]))
p[i] = tolower(Password[i]);
}
char buf[20];
hashPassword(p, buf);
RP_TEXT(0x3D, "hashpw: ", 0);
hex_print(buf, strlen(buf));
AVOID(buf, 20);
ASTRING0(Username);
APACKET(0x3D);
}
void Bot::RP_0x46(char *DATA)
{
RP_TEXT(DATA[1], "%s\n", DATA+21);
}
void Bot::SP_0x46()
{
ADWORD(0); //ADWORD(#) is acceptable even though it should be 0
APACKET(0x46);
}
void Bot::SP_0x50()
{
ADWORD(0);
AVOID(Client, strlen(Client));
ADWORD(VByte);
AVOID(Language, strlen(Language));
ADWORD(0);
ADWORD(0);
ADWORD(0);
ADWORD(0);
ASTRING0(ACountry);
ASTRING0(Country);
APACKET(0x50);
if(Ping0 == true)
SP_0x25("sit0");
}
void Bot::RP_0x50(char *DATA)
{
char mpqfile[FILENAME_MAX], digest[0x11];
char *mpqName = DATA + 24, *pch;
char *ChecksumFormula = DATA + strlen(mpqName) + 25;
int version;
int checksum;
int hashlen;
unsigned int product,value3,value4;
pch = strstr(mpqName,".mpq");
strncpy(pch,".dll",4);
strcpy(mpqfile, LDFile0);
strcat(mpqfile, mpqName);
ClientToken = rand();
ServerToken = *(unsigned int *)(DATA + 8);
CDKeyDecoder pm(CDKey);
hashlen = pm.calculateHash(ClientToken, ServerToken);
char* KeyHash = new char[hashlen];
pm.getHash(KeyHash);
RP_TEXT(DATA[1], "keyhash: ",0 );
hex_print(KeyHash, strlen(KeyHash));
product=pm.getProduct();
value3=pm.getVal1();
value4=pm.getVal2();
if(CheckRevision(VFile[1], VFile[2], VFile[3], ChecksumFormula, &version, &checksum, digest, mpqfile, VFile[0]))
{
RP_TEXT(DATA[1], "Arguments:\n Lockdown file: %s\n Checksum: %x\n Version: %x\n Digest: ", mpqfile, checksum, version, 0);
hex_print(digest, strlen(digest));
}
else
{
RP_TEXT(DATA[1], "CHECKREVISION FAILED\n", 0);
return;
}
SP_0x51(KeyHash, digest, version, checksum, product, value3);
}
void Bot::SP_0x51(char *KEY_HASH, char *EXE_INFO , unsigned long EXE_VER, unsigned long CHECKSUM, unsigned long PRODKEY, unsigned long PRIVKEY)
{
ADWORD(ClientToken);
ADWORD(EXE_VER);
ADWORD(CHECKSUM);
ADWORD(1);
ADWORD(0);
ADWORD(strlen(CDKey));
ADWORD(PRODKEY);
ADWORD(PRIVKEY);
ADWORD(0);
AVOID(KEY_HASH, 20);
ASTRING0(EXE_INFO);
ASTRING0(Username); //"AlenL");
APACKET(0x51);
}
void Bot::RP_0x51(char *DATA)
{
switch (*(unsigned long *)(DATA + 4))
{
case 0x000: SP_0x3A(); return;
case 0x100: RP_TEXT(DATA[1], "OLD GAME VERSION: %s\n", DATA + 8); break;
case 0x101: RP_TEXT(DATA[1], "INVALID VERSION\n", 0 ); break;
case 0x102: RP_TEXT(DATA[1], "GAME VERSION MUST BE DOWNGRADED: %s\n", DATA + 8); break;
case 0x200: RP_TEXT(DATA[1], "INVALID CD KEY\n ", 0 ); break;
case 0x201: RP_TEXT(DATA[1], "CD KEY IN USE BY: %s\n", DATA + 8 ); break;
case 0x202: RP_TEXT(DATA[1], "BANNED KEY\n", 0 ); break;
case 0x203: RP_TEXT(DATA[1], "WRONG PRODUCT\n", 0 ); break;
default: RP_TEXT(DATA[1], "DEFAULT: %s", DATA + 4 ); break;
}
exit(1);
}
#include "bot.h"
void Bot::SOCK_CON()
{
#ifdef _WIN32
WSADATA wsaData;
WSAStartup(MAKEWORD(1,1), &wsaData);
#endif
if( SOCK_CREATE() == true) Login();
}
void Bot::SOCK_DISCON()
{
#ifdef _WIN32
shutdown(sock, SD_BOTH);
close(sock);
WSACleanup();
#else
close(sock);
#endif
Connected = false;
printf("Socket Closed\n");
}
void Bot::Login()
{
if(!strcmp(Client,"TAHC"))
{
Connected = true;
APACKET0("\x03\x04%s\r\n%s\r\n/join %s\r\n", Username, Password, Channel);
}
else
{
send(sock,"\x01",1,0);
SP_0x50();
}
SOCK_HANDLER();
}
bool Bot::SOCK_CREATE()
{
struct hostent *h;
struct sockaddr_in their_addr;
// if this is a hostname and not an IP address, resolve it
char *p = Server;
while (*p && (isdigit(*p) || (*p == '.')))
p++;
if ((h=gethostbyname(Server)) == NULL)
{
printf("gethostbyname error\n");
return 0;
}
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("socket error \n");
return 0;
}
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(6112);
if (*p)
their_addr.sin_addr = *((struct in_addr *)h->h_addr);
else
their_addr.sin_addr.s_addr = inet_addr(Server);
//bzero(&(their_addr.sin_zero), 8);
if (connect(sock, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1)
{
printf("connect error\n");
return 0;
}
return 1;
}
void Bot::SOCK_HANDLER()
{
int numbytes;
int nBufLen=0;
int nBufPos=0;
char stageBuf[2048];
while(1)
{
int nNumToRead = 2048 - nBufLen - nBufPos;
if (nNumToRead == 0)
{
memmove(stageBuf, stageBuf+nBufPos, nBufLen);
nBufPos = 0;
nNumToRead = 2048 - nBufLen;
}
numbytes = recv(sock, stageBuf + nBufPos + nBufLen, nNumToRead, 0);
if (numbytes <= 0)
{
printf("\nSOCK_HANDLERB() ERROR\n");
return;
}
nBufLen += numbytes;
while (nBufLen > 0)
{
char *m = stageBuf + nBufPos;
int packetlen = 0;
if(!strcmp(Client,"TAHC"))
{
while (packetlen < nBufLen)
{
if (m[packetlen] == '\n') break;
packetlen++;
}
packetlen++;
}
else
{
if ((unsigned char)m[0] != (unsigned char)0xFF)
{
printf("\nNOT A 0xFF HHEADER\n");
hexdump(m,numbytes);
break;
}
packetlen = *(unsigned short*)( m + 2 );
}
if (packetlen > nBufLen) break;
if((PSB == SB) && (Dump==true))
hexdump(m,packetlen);
if(!strcmp(Client,"TAHC"))
{
m[packetlen - 1] = '\0';
//if (isdigit(*m))
CDispatch(m);
}
else
{// add to cut that extra shit with like memcpy(m,m,packetlen); then a m[packetlen+1] ="/0";
RP_HANDLER(m[1], m,packetlen);
}
nBufLen -= packetlen;
nBufPos += packetlen;
}
if (!nBufLen) nBufPos = 0;
}
}
,1,1
Language=SUne
ACountry=USA
Country=United States
LDFile0=/home/sit0/Enigma/lockdown/DLLs/
D2File0=/home/sit0/Enigma/lockdown/DRTL.bin
D2File1=/home/sit0/Enigma/lockdown/VD2D/Game.exe
D2File2=/home/sit0/Enigma/lockdown/VD2D/Bnclient.dll
D2File3=/home/sit0/Enigma/lockdown/VD2D/D2Client.dll
D2Byte=0D
SCFile0=/home/sit0/Enigma/lockdown/PXES/PXES.bin
SCFile1=/home/sit0/Enigma/lockdown/PXES/StarCraft.exe
SCFile2=/home/sit0/Enigma/lockdown/PXES/storm.dll
SCFile3=/home/sit0/Enigma/lockdown/PXES/battle.snp
SCByte=D3
W2File0=/home/sit0/Enigma/lockdown/NB2W/NB2W.bin
W2File1=/home/sit0/Enigma/lockdown/NB2W/Warcraft II BNE.exe
W2File2=/home/sit0/Enigma/lockdown/NB2W/Storm.dll
W2File3=/home/sit0/Enigma/lockdown/NB2W/Battle.snp
W2Byte=4F
W3File0=/home/sit0/Enigma/lockdown/3RAW/3RAW.bin
W3File1=/home/sit0/Enigma/lockdown/3RAW/StarCraft.exe
W3File2=/home/sit0/Enigma/lockdown/3RAW/storm.dll
W3File3=/home/sit0/Enigma/lockdown/3RAW/battle.snp
W3Byte=18
BPlug=tenb
SPing=0
1Ping=0
0Ping=1
Dump=1
Auto=0
CMD=$
{
Username=sit0
Password=xererq
Server=63.240.202.120
Channel=warez
Client=68XIPXES
CDKey=3536783417369
Delay=110
}
{
Username=sit0
Password=xererq
Server=63.240.202.120
Channel=warez
Client=68XIPXES
CDKey=3536783417369
Delay=110
}
{
Username=sit0
Password=xererq
Server=63.240.202.120
Channel=warez
Client=68XIPXES
CDKey=3536783417369
Delay=110
}