• Welcome to Valhalla Legends Archive.
 

New Auth System on battle.net?

Started by ThePro, November 12, 2006, 03:26 PM

Previous topic - Next topic

ThePro

Hm, it doesent work for me. What does the first item of the array right before the ProductID mean?
The whole packet is too large, this is what I send:


0000  FF 51 5B 00 00 00 00 0F 01 00 0E 01 FE B3 05 13    .Q[.............
0010  01 00 00 00 00 00 00 00 0D 00 00 00 EB E0 47 0D    ..............G. <--- right after the 0D isn't the ProductID 0x1 :(
0020  00 00 00 01 00 00 00 xx xx xx 00 00 00 00 00 AF    ................
0030  8A 86 28 4D CB F7 87 1C F2 98 5E DC AD 31 85 3A    ..(M......^..1.:
0040  FC 97 ED F3 81 64 96 28 05 EB F1 FD 06 B3 C2 B0    .....d.(........
0050  00 53 74 65 70 68 61 6E 42 54 00                   .StephanBT.


If I set a pointer to Dword[1] everything fits but I get 0x203 error then. :(

This are my class variables I use:

DWORD ClientToken; <-- BNLS_CDKEY
DWORD EXEVersion; (ok)
DWORD EXEHash; (i think its ok)
DWORD NumOfKeys; (1)
DWORD UsingSpawn; (0)

DWORD KeyLength; (0x0D)
ULONG KeyData[9]; <-- The result of BNLS_CDKEY
char StatString[17]; <--- The result of BNLS_VERCHECKEX2
char OwnerName[16]; <--- "StephanBT"

Spilled

Quote from: ThePro on November 15, 2006, 05:13 PM
Hm, it doesent work for me. What does the first item of the array right before the ProductID mean?
The whole packet is too large, this is what I send:


0000  FF 51 5B 00 00 00 00 0F 01 00 0E 01 FE B3 05 13    .Q[.............
0010  01 00 00 00 00 00 00 00 0D 00 00 00 EB E0 47 0D    ..............G. <--- right after the 0D isn't the ProductID 0x1 :(
0020  00 00 00 01 00 00 00 xx xx xx 00 00 00 00 00 AF    ................
0030  8A 86 28 4D CB F7 87 1C F2 98 5E DC AD 31 85 3A    ..(M......^..1.:
0040  FC 97 ED F3 81 64 96 28 05 EB F1 FD 06 B3 C2 B0    .....d.(........
0050  00 53 74 65 70 68 61 6E 42 54 00                   .StephanBT.


If I set a pointer to Dword[1] everything fits but I get 0x203 error then. :(

This are my class variables I use:

DWORD ClientToken; <-- BNLS_CDKEY
DWORD EXEVersion; (ok)
DWORD EXEHash; (i think its ok)
DWORD NumOfKeys; (1)
DWORD UsingSpawn; (0)

DWORD KeyLength; (0x0D)
ULONG KeyData[9]; <-- The result of BNLS_CDKEY
char StatString[17]; <--- The result of BNLS_VERCHECKEX2
char OwnerName[16]; <--- "StephanBT"


DWORD EXEHash? no?

ThePro

#32
I used DWORD ExeHash in the old Auth system. For compatility reasons I didn't change it's name. Instead the ExeHash I store the checksum value returned by BNLS_VERSIONCHECKEX2 in there.

UserLoser

Don't think server allows client to have 0 as client token in any message.

ThePro

If you take a clother look, you will notice that the Client Token is 0x0000000F and not 0x00000000
Anyway, I get a CD Key error. If the Client Token wasn't correct I'd be banned by bnet I guess.

What does this EB E0 47 0D right after CDKeylength (0x0D) mean? It's the first Item of the DWORD[9] KeyData Array

l2k-Shadow

Quote from: ThePro on November 15, 2006, 05:13 PM
Hm, it doesent work for me. What does the first item of the array right before the ProductID mean?
The whole packet is too large, this is what I send:


0000  FF 51 5B 00 00 00 00 0F 01 00 0E 01 FE B3 05 13    .Q[.............
0010  01 00 00 00 00 00 00 00 0D 00 00 00 EB E0 47 0D    ..............G. <--- right after the 0D isn't the ProductID 0x1 :(
0020  00 00 00 01 00 00 00 xx xx xx 00 00 00 00 00 AF    ................
0030  8A 86 28 4D CB F7 87 1C F2 98 5E DC AD 31 85 3A    ..(M......^..1.:
0040  FC 97 ED F3 81 64 96 28 05 EB F1 FD 06 B3 C2 B0    .....d.(........
0050  00 53 74 65 70 68 61 6E 42 54 00                   .StephanBT.


If I set a pointer to Dword[1] everything fits but I get 0x203 error then. :(

This are my class variables I use:

DWORD ClientToken; <-- BNLS_CDKEY
DWORD EXEVersion; (ok)
DWORD EXEHash; (i think its ok)
DWORD NumOfKeys; (1)
DWORD UsingSpawn; (0)

DWORD KeyLength; (0x0D)
ULONG KeyData[9]; <-- The result of BNLS_CDKEY
char StatString[17]; <--- The result of BNLS_VERCHECKEX2
char OwnerName[16]; <--- "StephanBT"


That packet is definitely incorrect. After 0x0D your product ID should be 0x01 (in most cases) or 0x02 for starcraft. You are inserting 7 extra bytes in there, the problem probably is that you are not parsing the BNLS packet correctly.
Also your exe information string is .. 13 bytes long. It should be 16 for IX86 login.
Quote from: replaced on November 04, 2006, 11:54 AM
I dunno wat it means, someone tell me whats ix86 and pmac?
Can someone send me a working bot source (with bnls support) to my email?  Then help me copy and paste it to my bot? ;D
Já jsem byl určenej abych tady žil,
Dával si ovar, křen a k tomu pivo pil.
Tam by ses povídaj jak prase v žitě měl,
Já nechci před nikym sednout si na prdel.

Já nejsem z USA, já nejsem z USA, já vážně nejsem z USA... a snad se proto na mě nezloběj.

ThePro

You was right. :)
I declared the Success variable as bool (which reserves one byte in c++) but the REAL type is DWORD so everything got shifted.
Please note that in the spec @ valhallalegends stuff! That could be wired to other ones.

Now everything works fine again, thanks for help. :)

|