• Welcome to Valhalla Legends Archive.
 

BNLS_VERSIONCHECKEX2

Started by Chriso, December 04, 2006, 05:17 AM

Previous topic - Next topic

Ersan

#15
.InsertULONG MpqFileTime
A filetime struct has two 4-byte halves, totalling 7 bytes an a null terminator.

As for why your parsing's off:
If .GetBYTE = &H1 Then
The BOOL response is 4 bytes long (GetDWORD), not one.  I have no idea why Skywing did that.

Skywing

A FILETIME is not a delimited item.  It is two raw four-byte halves (or a single unaligned eight-byte field); there is no null terminator.

Aside from fields with an explicit (dynamic) length or null delimited fields, all fields in the body of BNLS messages tend to be at least four bytes in length.

Chriso

Whenever I send 0x51 using Version, Checksum and ExeInfo from 0x1A I get disconnected and IPbanned on the server

l2k-Shadow

paste your fixed 0x1A parse + 0x51 send?
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.

Kp

Therefore, we can conclude that you're doing it wrong.  If you want more help, we need more information.  Perhaps you should post the actual bytes sent?  You can censor the cdkey data, but without seeing the outbound message we cannot even be sure you're sending the data in the right order.
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

Ersan

Quote from: Skywing on December 04, 2006, 08:00 PM
A FILETIME is not a delimited item.  It is two raw four-byte halves (or a single unaligned eight-byte field); there is no null terminator.

Sorry, I have no idea where I read that it was nullterm, it's 8 bytes regardless.

MysT_DooM



vb6, something about that combination of numbers and letters is sexy

Chriso

Thanks I'll try everything you guys said, I still don't know why it's disconnecting me, everything looks correct compared to BnetDocs but I'll get back to you if I fix it...

Ringo

Quote from: DDA-TriCk-E on December 04, 2006, 04:59 PM
Oh maybe it's the ULONGLONG? I just assumed that was FILETIME? does it have a different format/size? how many bytes should it be in length?



0x1A

(DWORD) Product ID.*
(DWORD) Flags.**
(DWORD) Cookie.
(ULONGLONG) Timestamp for version check archive.
(STRING) Version check archive filename.
(STRING) Checksum formula.




Heres what I'm getting from BNLS compared to hashing


D2DV

Using Hashes
version: 16780032
checksum: 522892090
exeinfo: Game.exe 07/19/06 11:54:27 2125824

Using BNLS
version: 0
checksum: -1895759861
exeinfo: í~Game.exe 08/17/05 01:11:43 2125824

Apart from (what looks like) not skipping the BNLS packet header, I dont think BNLS_VERSIONCHECKEX2 supports d2/w3 clients as of yet?

Skywing

It should support those clients.

Ersan

Quote from: Ringo on December 05, 2006, 08:58 AM
Apart from (what looks like) not skipping the BNLS packet header, I dont think BNLS_VERSIONCHECKEX2 supports d2/w3 clients as of yet?

I already mentioned that he was treating the boolean success as one byte instead of four.  And yes it does.

Ringo

Quote from: Skywing on December 05, 2006, 10:26 AM
It should support those clients.
Oh my bad, I thought D2/W2 clients couldnt use it yet :P

Quote from: Ersan on December 05, 2006, 11:12 AM
I already mentioned that he was treating the boolean success as one byte instead of four.
Ok, but dont expect an award or anything..
Quote from: Ersan on December 05, 2006, 11:12 AM
And yes it does.
Thanks.

Chriso

Quote from: Ersan on December 05, 2006, 11:12 AM
Quote from: Ringo on December 05, 2006, 08:58 AM
Apart from (what looks like) not skipping the BNLS packet header, I dont think BNLS_VERSIONCHECKEX2 supports d2/w3 clients as of yet?

I already mentioned that he was treating the boolean success as one byte instead of four.  And yes it does.

Yeah I have  been treating it as four bytes since you pointed that out, still doesnt work.

Hdx

Post a packet log + Your changed handle code.
~-~(HDX)~-~

Proud host of the JBLS server www.JBLS.org.
JBLS.org Status:
JBLS/BNLS Server Status

Chriso

The error had to do with BNLS_CDKEY_EX it wasn't returning the cdkey data correctly.

|