Main Menu
Menu

Show posts

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

Messages - sit0

#1
Suggestions / Re: Open Source?
October 22, 2011, 12:08:41 PM
bump...

now fully open sourced...
#2
Support / Re: Checkrevision failed
October 22, 2011, 10:59:41 AM
your making chip and everyone else guess whats wrong...

First copy/paste your config file on here. dont put your username/password/cdkey information but show your client/product information.

thats how you really would get your problem solved much faster
#3
Download / Enigma 0.994
June 19, 2011, 02:31:09 AM
Enigma 0.994 || by -=^$iT()^=- (BETA)

http://darkblizz.org/Forum2/downloads/?sa=downfile&id=33

[hs width=300 height=300]http://darkblizz.org/sit0/Enigma/enigma.png[/hs]

FULL SOURCE CODE NOW INCLUDED IN ZIP FILE

:: Added support for
---- DIablo Shareware Diablo 1, Diablo 2
---- Starcraft Shareware

:: Warcraft 3, Warcraft 3XP, Diablo 2 XP is not supported still...
#4
Download / Enigma 0.993
June 05, 2011, 04:15:12 PM
Enigma 0.993 || by -=^$iT()^=- (BETA)

http://darkblizz.org/Forum2/downloads/?sa=downfile&id=33

[hs width=300 height=300]http://darkblizz.org/sit0/Enigma/enigma.png[/hs]

FULL SOURCE CODE NOW INCLUDED IN ZIP FILE

:: Added New Commands, check Mandate.cpp
:: Added Master User
:: Added support to 0x19, 0x26
:: Fixed AutoJoin/Delay on Connection to Server
#5
Suggestions / Re: mandate.cpp
January 30, 2011, 08:42:30 PM
actually if you use the other threads in conjunction with this thread in the suggestions sub forum. You can easily contribute code and all you would have to do is open 5 other tabs on firefox/iexplorer.

Maybe you didn't look at the other posts...

PS: Sortve made this code adding thing into a plugin of sorts. People plugin code into forum as posts. I take those posts and compile. I am to busy to do more work on this program but have no problem taking time out to compile and post output.
#6
Suggestions / Re: mandate.cpp
January 23, 2011, 10:05:37 PM
if anyone wants to add commands to this... please code away...
#7
Support / Re: Possible bug
January 23, 2011, 10:00:35 PM
yeah. that will take like 2 minutes to fix, if you check the suggestions subforum under packets.cpp you can view the code there and you could make a post there as well. void Bot::RP_0x3A(char *DATA). Is where it joins channel

As for the database, yeah that would be simple as well. since i am lazy (thats the reason why i semi open sourced this program so people can code if they are really interested) when i get to that i would just make it a numerical access database

If you want though, you can make commands yourself. commands are under mandate.cpp
#8
Download / Enigma 0.992
January 09, 2011, 01:11:02 PM
Enigma 0.992 || by -=^$iT()^=- (BETA)

http://darkblizz.org/Forum2/downloads/?sa=downfile&id=33

[hs width=300 height=300]http://darkblizz.org/sit0/Enigma/enigma.png[/hs]

:: Fixed everything, I believe...
:: Haven't enabled diablo 2 or warcraft 3 login yet, as well as support on windows. (will do so in the future)
#9
Suggestions / bot.h
January 09, 2011, 12:31:28 PM
#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
#10
Suggestions / buffer.cpp
January 09, 2011, 12:30:39 PM
#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);
}
#11
Suggestions / mandate.cpp
January 09, 2011, 12:28:29 PM
#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;
}
}
#12
Suggestions / packets.cpp
January 09, 2011, 12:27:49 PM
#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);
}
#13
Suggestions / socket.cpp
January 09, 2011, 12:26:05 PM
#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;
}
}
#14
Download / Enigma 0.991
October 01, 2010, 11:58:40 AM
Enigma 0.991 || by -=^$iT()^=- (BETA)

http://darkblizz.org/Forum2/downloads/?sa=downfile&id=33



:: Fixed all the options in bot.conf, so everything works for once
:: Fixed packet view, made more 'user friendly'
:: Haven't enabled diablo 2 or warcraft 3 login yet, as well as support on windows. (will do so in the future)
#15
Support / HELP bot.conf
September 29, 2010, 07:43:25 PM
Enigma 0.992 bot.conf


,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
}