• Welcome to Valhalla Legends Archive.
 

Battle.net Bot Restrictions

Started by Rasico, April 04, 2004, 07:25 PM

Previous topic - Next topic

Rasico

I'm suer this is a commonly asked question, so forgive me, but how can I trick battle.net into thinking Im logged in under Starcraft, or WarCraft or such, specfically what extra data should I include when I send in the login data?

effect

Packet log the official client from blizzard and go from there
Quote from: Mangix on March 22, 2005, 03:03 AM
i am an expert Stealthbot VBScript. Recognize Bitch.

Rasico

Yeah I figured I could do that, but the problem is that requires effort  :P.

LordNevar

Noone said it was going to be easy  ::)

A good fortune may forbode a bad luck, which may in turn disguise a good fortune.
The greatest trick the Devil ever pulled, was convincing the world he didn't exsist.

Rasico

Im not real good with Ethereal, and Im trying to trace the packets I need, but there's to dang many of them, does anyone have any tips?

Newby

Quote from: Rasico on April 04, 2004, 08:16 PM
Im not real good with Ethereal, and Im trying to trace the packets I need, but there's to dang many of them, does anyone have any tips?

My suggestion: http://bnetdocs.valhallalegends.com

Good luck! =]
- Newby

Quote[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

Quote<TehUser> Man, I can't get Xorg to work properly.  This sucks.
<torque> you should probably kill yourself
<TehUser> I think I will.  Thanks, torque.

LordNevar

Or he could use BNCSMon and see what packet's are sent and recieved. Than use BNETDocs to identify each packet :)

A good fortune may forbode a bad luck, which may in turn disguise a good fortune.
The greatest trick the Devil ever pulled, was convincing the world he didn't exsist.

Rasico

Forgive my ignorance but what exactly does BNCS standfor?  ;D

Rasico

Ack theres to many vocabulary words I don't know, perhaps a detailed reading is in order (to be honest I'm just trying to get my friend's bot to trick b.net into thinking its signed on as a sc client).

Dyndrilliac

Follow the logon procedures outlined in BnetDocs to create a hashed logon sequence after reading the packet education text document or use CSB, which implements the logon for you and all you have to do is define what it does during certain events and set up your controls.

Your entering this subject at a time when most if not all of the especially hard work has been done for you assuming you know how to use it.

At this point, if you lack the effort needed to put even the simplest bot together, than you are in the wrong subject entirely.
Quote from: Edsger W. DijkstraIt is practically impossible to teach good programming to students that have had a prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.

Rasico

You misunderstood me, I understand a great deal has been done already  :), but Im using VB as my friend is to lazy to write it in C++  ;D. Essentially I found what you need to send in order to emulate the SC client, so I'm working with that  8)

Rasico

Yeah you'll have to forgive me, I just did a lot of reading, I sounded pretty stupid, and I will continue to do so for a not so limited time only.  But I still have a stupid question to ask  ;D. In order to emulate the client, I'm following the packet order I found on BNETDocs. Since I'm using VB here, I have to reverse the order of the DWORD to put it into a string according to something I read. Now what I'm looking at is

say the 0x51 Packet


(DWORD)       Client Token
(DWORD)       EXE Version
(DWORD)       EXE Hash
(DWORD)       Number of keys in this packet
(BOOLEAN)    Using Spawn (32-bit)

For Each Key:
(DWORD)       Key Length
(DWORD)       Product
(DWORD)       CDKEY Value 1
(DWORD)       Unknown (0)
(DWORD[5])    Hashed Key Data

(STRING)       Exe Information
(STRING)       CD Key owner name


One, whats the client token, two how can I send a 32 bit boolean, normally they are represented by 1 bit, but allocated from 1 byte, should I send 4 0's? And finally, what does exe hash mean?

FuzZ

You'll want to use DarkMinion's packetbuffer, not exactly sure where it's located at, someone else might have the link. If it's not there tomorrow I'll upload it..

Once you have it you simply do

Dim p as new PacketBuffer ' PacketBuffer being your classname.

p.insertDWORD &H1

for example..

The EXE hash is EXE information (not exactly sure what) that's passed through a hashing algorithm (best bet is BnetAuth.dll, Search)

it's late, i'm goin to bed, i might add more tomorrow

Rasico

#13
Thanks,  where did &H1 come from. Just for everyone, assume Im a complete n00b at this (not at programming, but at anything related to the bot).

soccerist

QuoteOne, whats the client token
Client token is a random 4-byte unsigned int (DWORD, or whatever you want to call it).  It's something that you generate for yourself and is used in the hashing algorithm.  (Hence 'token')

Quotehow can I send a 32 bit boolean, normally they are represented by 1 bit, but allocated from 1 byte, should I send 4 0's?
I recommend testing it out for youself.  If you have a starcraft cd install the spawn & packet log it.
;D That's how I learned this stuff.

QuoteAnd finally, what does exe hash mean?
You can take guesses at what this means, but it's the result of a hashing algorithm.  If you're looking for a quick way out, many people here "borrow" a function called CheckRevision() that figures out this value.  Figuring out how it's done without it takes some work.  

Some tips on figureing out all this stuff.  Read up on stuff in bnetdocs and in this forum.  Packet log like a madman.  Seriously.  Print stuff out, label stuff.  Debug output like crazy.  I was going through what you were going through about 2 weeks ago.

GL.