Valhalla Legends Forums Archive | Battle.net Bot Development References | BNLS Password Hash

AuthorMessageTime
Myndfyr
Thanks to your guys' help, I'm almost there!

I'm having a problem getting my password hashed...

When I send BNLS_HASHDATA with params:
(DWORD) 6
(DWORD) DOUBLEHASH
(NonNTString) "mypass"
(DWORD) < my client session key >
(DWORD) < my server session key >

I get an invalid password error on bnet with both SID_LOGINRESPONSE and SID_LOGINRESPONSE2.

When I send a BNLS_HASHDATA with params:
(DWORD) 6
(DWORD) 1 _or_ 0
(NonNTString) "mypass"

I get the expected 20-byte hash data back. I need to double-hash it, so then I send BNLS_HASHDATA with params:
(DWORD) 20 _or_ 22, same result
(DWORD) 1 _or_ 0
(DWORD[5]) < first hash result >
(DWORD) < my client session key >
(DWORD) < my server session key >

but then I get the same result with BNLS as if Bnet IP bans me - I get disconnected. What am I doing wrong here?

Thanks!

--Rob
September 27, 2003, 11:32 PM
Myndfyr
Well, I fixed the second single-hash, but I'm still getting an invalid password. Thoughts?
September 27, 2003, 11:50 PM
Skywing
You should use this:
(DWORD) Password length
(DWORD) HASHDATA_FLAG_DOUBLEHASH (0x04)
(Variable) Password
(DWORD) Client key
(DWORD) Server key

The HASHDATA_FLAG_DOUBLEHASH option tells BNLS to first create a hash of Password, and then create a hash of Client key + Server key + Hash(Password). The latter result is returned. This allows you to combine the common double-hash operation into just one transaction.
September 28, 2003, 1:17 AM

Search