Valhalla Legends Forums Archive | Battle.net Bot Development | 0x51

AuthorMessageTime
LockesRabb
for this packet:

[quote]Message ID:    0x51
Message Name:    SID_AUTH_CHECK
Direction:    Client -> Server (Sent)
Used By:    Starcraft, Starcraft Broodwar, Diablo II, Diablo II LOD, Warcraft III, Warcraft III: TFT

(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)      CD key's product value
(DWORD)      CD key's public value
(DWORD)      Unknown (0)
(DWORD[5])    Hashed Key Data

(STRING)    Exe Information
(STRING)    CD Key owner name[/quote]

how do i get exe version, hash, and what do i set for number of keys in the packet? is it talking about cdkeys? if it's sc, i set &h1, if it's wc3 exp, i set &h2, right? for the boolean, i set &h0, right? what about the exe info? what should be done about that one?
February 14, 2007, 10:14 AM
Barabajagal
Version and Hash (Checksum) are returned by BNLS or whatever DLL you use for local hasing. The Version is the Product Version of the main EXE. For example, DRTL is "1.0.9.1", so its version is 0x01090001. The number of keys is 2 for expansions, 1 for non-expansion. Spawn 1 = yes, 0 = no. You can only use that for STAR (and W2BN and JSTR, even through the normal client does not use this packet). EXE Information is also returned by BNLS or the Local Hashing DLL. EXE Hash and EXE Information are returned from the CheckRevision function.
February 14, 2007, 10:22 AM
Gangz
Assuming you are using BNLS checkversionex2 will give you back all the info needed for 0x51. I haven't check but I believe the only product it will not work for is warcraft III and that is only because BNLS was not updated for it.


[code]
Message ID:  0x1A
Message Name: BNLS_VERSIONCHECKEX2
Direction: Server -> Client (Received)
Format:
Help

Hint: Field names highlighted in blue will display a definition if you hover over the text.

(BOOL) Success*
(DWORD) Version.
(DWORD) Checksum.
(STRING) Version check stat string.
(DWORD) Cookie.
(DWORD) The latest version code for this product.

Remarks: * Success is TRUE if successful, FALSE otherwise. If this is FALSE, the next DWORD is the provided cookie, following which the message ends.
[/code]
February 14, 2007, 10:25 AM
Barabajagal
As has been stated in numerous other posts... just use JBLS for war3 and everything will be fine.
February 14, 2007, 10:30 AM
BreW
You don't need BNLS to connect with WAR3 at all.
February 14, 2007, 2:41 PM
Ante
with the bf checkrevision, you don't need bnls for sexp either...
but if you do, use BNLS 0x18 for the checksum, version, and exeinfo

for the cd key dwords you can get then from BNLS_CDKEY (0x01) or from bncsutil 1.3.1
February 14, 2007, 4:01 PM
BreW
Ersan, stop flaming people just because they prefer a certain packet over your gay 0x1A
February 14, 2007, 5:15 PM
LockesRabb
Two quick questions for 0x1A:

[quote]Message ID:  0x1A
Message Name: BNLS_VERSIONCHECKEX2
Direction: Server -> Client (Received)

(BOOL) Success*
(DWORD) Version.
(DWORD) Checksum.
(STRING) Version check stat string.
(DWORD) Cookie.
(DWORD) The latest version code for this product.[/quote]

The first DWORD (after BOOL) says 'Version', the last DWORD also says version. What's the difference between the two?

Also, the version check stat string in the packet -- it's of course null terminated, right?
February 14, 2007, 5:31 PM
UserLoser
Every string in any protocol Battle.net/BNLS/whatever related will be NULL terminated unless they're is a byte beforehand describing the length of the following string.
February 14, 2007, 7:00 PM
LockesRabb
[quote author=Kyro link=topic=16314.msg164836#msg164836 date=1171474315]The first DWORD (after BOOL) says 'Version', the last DWORD also says version. What's the difference between the two?[/quote]

Alright, that's what I thought... Thanks for educating me! What about the second question?
February 14, 2007, 7:09 PM
UserLoser
[quote author=Kyro link=topic=16314.msg164845#msg164845 date=1171480195]
[quote author=Kyro link=topic=16314.msg164836#msg164836 date=1171474315]The first DWORD (after BOOL) says 'Version', the last DWORD also says version. What's the difference between the two?[/quote]

Alright, that's what I thought... Thanks for educating me! What about the second question?
[/quote]

The version consists of major, minor, revision, etc, of the game executable (i.e. Starcraft.exe).  To learn more about this you can read this on MSDN.  The executable version is used as part of the CheckRevision verification to make sure you're using the up-to-date game file.

The version code is the value that traditionally changes when there is a patch to the game.  If you send the wrong value here the server will reject your version check challenge and tell you that either, a) your version must be upgraded with a patch, b) your version is unknown, or c) your version is must be downgraded with a patch (this one has never been seen 'in the wild')
February 14, 2007, 7:18 PM
LockesRabb
ah, so the version in this case would be 1.14, and the version code would be CF, right?
February 14, 2007, 7:26 PM
UserLoser
[quote author=Kyro link=topic=16314.msg164852#msg164852 date=1171481168]
ah, so the version in this case would be 1.14, and the version code would be CF, right?
[/quote]

No, the executable version isn't just 1.14.  The version code is 0xcf.

To get the actual version in readable format: right click on your Starcraft.exe->Properties->Version tab->See what it says next to "File version:"
February 14, 2007, 7:31 PM

Search