• Welcome to Valhalla Legends Archive.
 

Checksum, Version, Exeinfo and Version Byte

Started by Freeware, November 08, 2003, 05:29 PM

Previous topic - Next topic

Freeware

I am implementing a system into my bot, where on the first run (per product) it uses BNLS, and then stores the Checksum, Version, Exeinfo and Versionbyte to an ini file. For future runs, it uses that written data to connect. Once it gets an 'invalid verison' or 'version needs updating' from Battle.Net, it then uses BNLS again. Is the Checksum, Version, Exeinfo and VersionByte constant? (by constant I mean not changing unless a new patch is released)

MyndFyre

Quote from: Freeware on November 08, 2003, 05:29 PM
I am implementing a system into my bot, where on the first run (per product) it uses BNLS, and then stores the Checksum, Version, Exeinfo and Versionbyte to an ini file. For future runs, it uses that written data to connect. Once it gets an 'invalid verison' or 'version needs updating' from Battle.Net, it then uses BNLS again. Is the Checksum, Version, Exeinfo and VersionByte constant? (by constant I mean not changing unless a new patch is released)

This is something you could check by doing several packetlogs.  I do not believe that the Checksum is, but the version, exeinfo, and version byte (IIRC) stay the same for each version.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

Freeware

Quote from: Myndfyre on November 08, 2003, 05:40 PM
Quote from: Freeware on November 08, 2003, 05:29 PM
I am implementing a system into my bot, where on the first run (per product) it uses BNLS, and then stores the Checksum, Version, Exeinfo and Versionbyte to an ini file. For future runs, it uses that written data to connect. Once it gets an 'invalid verison' or 'version needs updating' from Battle.Net, it then uses BNLS again. Is the Checksum, Version, Exeinfo and VersionByte constant? (by constant I mean not changing unless a new patch is released)

This is something you could check by doing several packetlogs.  I do not believe that the Checksum is, but the version, exeinfo, and version byte (IIRC) stay the same for each version.

Is their any way to get ONLY the checksum perhaps using Bnetauth.dll?

iago

No, it's not at all constant.  The Exeinfo will stay the same, and the version byte will stay the same, but the checksum, etc will change almost every time.  

Also, the way you're doing it takes a risk of getting banned for too many failed attempts to log on, so I wouldn't recommend doing this.
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Skywing

#4
Quote from: Freeware on November 08, 2003, 05:29 PM
I am implementing a system into my bot, where on the first run (per product) it uses BNLS, and then stores the Checksum, Version, Exeinfo and Versionbyte to an ini file. For future runs, it uses that written data to connect. Once it gets an 'invalid verison' or 'version needs updating' from Battle.Net, it then uses BNLS again. Is the Checksum, Version, Exeinfo and VersionByte constant? (by constant I mean not changing unless a new patch is released)
The server maintains a cache of version check formulae and results - say, 10 or so, per product.  These rotate every couple minutes, IIRC (that is, new formulae and results are generated).

A better idea is to cache the formula used and the results, and defer to the cached copy if the formula is the same.  BNLS internally implements something like this to speed up version checking a bit, albeit with a much larger cache due to the number of Battle.net servers.

Note that due to how fast the version check values change, it's probably not worth committing them to disk.  Simply saving them in memory should be sufficient given their short lifetimes.