Valhalla Legends Archive

Programming => Battle.net Bot Development => Topic started by: BreW on August 16, 2006, 10:14 PM

Title: Packet Buffer
Post by: BreW on August 16, 2006, 10:14 PM
Alot of people told me its VERY hard to make a bot without one.
I want to take a shot at it, anyways.
Is it REALLY that hard? (btw im making my first bot)

for the first packet (an 0x05), what would be an appropriate value for the Client Token?
For the client ID, would I have to reverse the Dword name? (like turn SSHR over to RHSS)
I am really dumb and i get confused easily. Help?!
Title: Re: Packet Buffer
Post by: Hdx on August 16, 2006, 10:59 PM
Making a binary bot isn't THAT hard with all the information theses days. I can pull a basic connection from scratch in less then an hr.
Check the Repository forum for public packet buffers.
The client token is a random number that client makes, any number will do, cept 0, Last time I tryed that I got IPBanned :P
And yes, the Client ID is 'reversed' tho, you should refer to them as the dwords they are.
http://BNetDocs.valhallalegends.com/ all the info you would need.
~-~(HDX)~-~
Title: Re: Packet Buffer
Post by: BreW on August 17, 2006, 08:42 AM
thanks, hdx. i have always been wondering what a binary bot really is.
+, i think i might have to use a packet buffer, because i do have no clue what i'm doing :/
Title: Re: Packet Buffer
Post by: l2k-Shadow on August 17, 2006, 10:53 AM
Quote from: BreW on August 17, 2006, 08:42 AM
thanks, hdx. i have always been wondering what a binary bot really is.
+, i think i might have to use a packet buffer, because i do have no clue what i'm doing :/

Packet buffer is not essential but in order to make your code worth awhile you should use one. If you don't know how to work with packets then I suggest don't try making a bot. bnetdocs has all the information you need in order to successfully make a bot, also you may want to use a hashing library such as BNCSUtil (http://bncsutil.ionws.com/new) for CheckRevision and hashing functions. Make sure to correctly follow all login sequences. StarCraft sequence on bnetdocs is outdated:

Header byte 0x01
C->S 0x50
S->C 0x25
S->C 0x50
C->S 0x25 (Optional Ping Packet)
C->S 0x51
S->C 0x51
C->S 0x3A
S->C 0x3A
Create Account:
C->S 0x3D
S->C 0x3D
---------------
C->S 0x0A
C->S 0x0C


Those are all required packets to logon, there are a couple more that are optional to send. If you want to get that information, use a packet logger like Ethereal (http://www.ethereal.com).
Also here is a packet buffer I wrote (http://www.energydl.com/shadow/clsPacketBuffer.cls).

GL HF.
Title: Re: Packet Buffer
Post by: UserLoser on August 17, 2006, 02:01 PM
Quote from: l2k-Shadow on August 17, 2006, 10:53 AM
Quote from: BreW on August 17, 2006, 08:42 AM
thanks, hdx. i have always been wondering what a binary bot really is.
+, i think i might have to use a packet buffer, because i do have no clue what i'm doing :/

Packet buffer is not essential but in order to make your code worth awhile you should use one. If you don't know how to work with packets then I suggest don't try making a bot. bnetdocs has all the information you need in order to successfully make a bot, also you may want to use a hashing library such as BNCSUtil (http://bncsutil.ionws.com/new) for CheckRevision and hashing functions. Make sure to correctly follow all login sequences. StarCraft sequence on bnetdocs is outdated:

Header byte 0x01
C->S 0x50
S->C 0x25
S->C 0x50
C->S 0x25 (Optional Ping Packet)
C->S 0x51
S->C 0x51
C->S 0x3A
S->C 0x3A
Create Account:
C->S 0x3D
S->C 0x3D
---------------
C->S 0x0A
C->S 0x0C


Those are all required packets to logon, there are a couple more that are optional to send. If you want to get that information, use a packet logger like Ethereal (http://www.ethereal.com).
Also here is a packet buffer I wrote (http://www.energydl.com/shadow/clsPacketBuffer.cls).

GL HF.


The logon sequence for Starcraft on BnetDocs is outdated?  Since when and how so?
Title: Re: Packet Buffer
Post by: l2k-Shadow on August 17, 2006, 02:15 PM
Quote from: UserLoser on August 17, 2006, 02:01 PM
Quote from: l2k-Shadow on August 17, 2006, 10:53 AM
Quote from: BreW on August 17, 2006, 08:42 AM
thanks, hdx. i have always been wondering what a binary bot really is.
+, i think i might have to use a packet buffer, because i do have no clue what i'm doing :/

Packet buffer is not essential but in order to make your code worth awhile you should use one. If you don't know how to work with packets then I suggest don't try making a bot. bnetdocs has all the information you need in order to successfully make a bot, also you may want to use a hashing library such as BNCSUtil (http://bncsutil.ionws.com/new) for CheckRevision and hashing functions. Make sure to correctly follow all login sequences. StarCraft sequence on bnetdocs is outdated:

Header byte 0x01
C->S 0x50
S->C 0x25
S->C 0x50
C->S 0x25 (Optional Ping Packet)
C->S 0x51
S->C 0x51
C->S 0x3A
S->C 0x3A
Create Account:
C->S 0x3D
S->C 0x3D
---------------
C->S 0x0A
C->S 0x0C


Those are all required packets to logon, there are a couple more that are optional to send. If you want to get that information, use a packet logger like Ethereal (http://www.ethereal.com).
Also here is a packet buffer I wrote (http://www.energydl.com/shadow/clsPacketBuffer.cls).

GL HF.


The logon sequence for Starcraft on BnetDocs is outdated?  Since when and how so?

Since 1.14, StarCraft client sends 0x3A and drops your connection if you use 0x29. Also you can no longer use 0x1E to logon as you could in the past.
Title: Re: Packet Buffer
Post by: MysT_DooM on August 17, 2006, 04:21 PM
im using 0x29 still....no problems for me...

edit: for sc there is no problem however for war2(0x1E), i dont know.
Title: Re: Packet Buffer
Post by: l2k-Shadow on August 17, 2006, 04:50 PM
Hmm really? I remember trying to login with 0x29 dropped me but I do know that official client uses 0x3A now so it's better to use that.
Title: Re: Packet Buffer
Post by: Networks on August 18, 2006, 09:15 PM
Quote from: BreW on August 16, 2006, 10:14 PM
Alot of people told me its VERY hard to make a bot without one.
I want to take a shot at it, anyways.
Is it REALLY that hard? (btw im making my first bot)

It's not a question of whether it's hard to make a bot without one, it's really a fact that it makes handling data you get much easier instead of using heavily redundant code. Many packetbuffers are great since they can easily take out strings, dwords, words using a simple function that even keeps track of the position of where it is in the data. Packetbuffers make life easier, simple.