• Welcome to Valhalla Legends Archive.
 

IX86ver mpq update?

Started by Ringo, August 22, 2006, 05:25 PM

Previous topic - Next topic

vuther.de

Quote from: Ringo on August 22, 2006, 08:13 PM
Iv got a gut feeling all bots may have to support this soon :P

:) You bet it, that's what Battle.net is up to.

l2k-Shadow

#16
Quote from: Ringo on August 22, 2006, 08:13 PM
Quote from: l2k-Shadow on August 22, 2006, 08:01 PM

Private Declare Function CR Lib "ix86ver0.dll" Alias "CheckRevision" (ByVal FileExe As String, ByVal FileStormDll As String, ByVal FileBnetDll As String, ByVal HashText As String, ByRef Version As Long, ByRef Checksum As Long, ByRef ExeInfo As String) As Long

Private Sub Form_Load()
Dim c&, ex$, v&, Files(2) As String, hash$, r&
    Files(0) = App.Path & "\STAR\starcraft.exe"
    Files(1) = App.Path & "\STAR\storm.dll"
    Files(2) = App.Path & "\STAR\battle.snp"
    hash = "A=189790454 B=107955712 C=107303329 4 A=A-S B=B+C C=C-A A=A-B"
    r = CR(Files(0), Files(1), Files(2), hash, v, c, ex)
    MsgBox Hex(c)
End Sub


I tried including the last arguement too with the file number, no luck.
Ah, initialize the exe info buffer :)

lol i'm dumb thanks
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.

l2k-Shadow

#17
Ok so I finally got the dlls to work but it seems that every time I recompile the exe to use the .dll, the checksum changes even with the same .dll and hash string, just recompiled exe.. ideas?
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.

Hdx

#18
http://jbls.org/CRev.txt
Thats the function it calls on the 3 files, the seed are the same.
That function is what changed I believe.
I'm not fluent in ASM anymore so, I'm not gona be able to covert it.
Also updated my zip to include both the old and new files.
http://jbls.org/downloads/IX86ver.dll.zip
~-~(HDX)~-~

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

Ringo

Hmm, iv picked up from where i left off, and all iv left to do, is to figger out how to handle the checksum long after the api is called. :(

CheckRevision.dll:
-660340068  (0xD8A4029C) 00111001010000000010010100011011
IX86Ver1.dll:
-254424875  (0xF0D5C8D5) 10101011000100111010101100001111

Yet they should be exacly the same ::)
Im guessing this is some C#/C++ vs VB6 data type issue?
Im sure i remember reading a topic about this, ages and ages ago >_< any ideas anyone? :o

UserLoser

Ah, good old UserBot uses the Battle.net server set version file for authentication.  I am unable to verify whether this is completly true because it doesn't seem to make much sense that it's only for non-D2 products, but either way my old old bot downloaded it and executes CheckRevision totally fine:

[00:40:30] Connecting to useast.battle.net...
[00:40:30] Connected to Battle.net!
[00:40:30] Requesting file IX86ver7.mpq from useast.battle.net...
[00:40:30] Downloading file IX86ver7.mpq (length: 6,876 bytes)...
[00:40:30] Successfully downloaded IX86ver7.mpq in .11 seconds @ 61.6kb/s!
[00:40:30] Checking versions and Cd-Key...
[00:40:31] Passed version and Cd-Key check!
[00:40:31] Attempting to log on...
[00:40:31] Successfully logged on!

Note this client was also written in VB. :P

Ringo

Quote from: UserLoser on August 23, 2006, 12:42 AM
Ah, good old UserBot uses the Battle.net server set version file for authentication.  I am unable to verify whether this is completly true because it doesn't seem to make much sense that it's only for non-D2 products, but either way my old old bot downloaded it and executes CheckRevision totally fine:

[00:40:30] Connecting to useast.battle.net...
[00:40:30] Connected to Battle.net!
[00:40:30] Requesting file IX86ver7.mpq from useast.battle.net...
[00:40:30] Downloading file IX86ver7.mpq (length: 6,876 bytes)...
[00:40:30] Successfully downloaded IX86ver7.mpq in .11 seconds @ 61.6kb/s!
[00:40:30] Checking versions and Cd-Key...
[00:40:31] Passed version and Cd-Key check!
[00:40:31] Attempting to log on...
[00:40:31] Successfully logged on!

Note this client was also written in VB. :P
Right, but care to explain why when i call it like any other, everything is fine, apart from the checksum? I figger its not a signed vs unsigned problem.

DeTaiLs

Quote from: UserLoser on August 23, 2006, 12:42 AM
Ah, good old UserBot uses the Battle.net server set version file for authentication.  I am unable to verify whether this is completly true because it doesn't seem to make much sense that it's only for non-D2 products, but either way my old old bot downloaded it and executes CheckRevision totally fine:

[00:40:30] Connecting to useast.battle.net...
[00:40:30] Connected to Battle.net!
[00:40:30] Requesting file IX86ver7.mpq from useast.battle.net...
[00:40:30] Downloading file IX86ver7.mpq (length: 6,876 bytes)...
[00:40:30] Successfully downloaded IX86ver7.mpq in .11 seconds @ 61.6kb/s!
[00:40:30] Checking versions and Cd-Key...
[00:40:31] Passed version and Cd-Key check!
[00:40:31] Attempting to log on...
[00:40:31] Successfully logged on!

Note this client was also written in VB. :P
Also useast has not been updated yet trying going on west and see if it works.



UserLoser

Quote from: Ringo on August 23, 2006, 12:49 AM
Quote from: UserLoser on August 23, 2006, 12:42 AM
Ah, good old UserBot uses the Battle.net server set version file for authentication.  I am unable to verify whether this is completly true because it doesn't seem to make much sense that it's only for non-D2 products, but either way my old old bot downloaded it and executes CheckRevision totally fine:

[00:40:30] Connecting to useast.battle.net...
[00:40:30] Connected to Battle.net!
[00:40:30] Requesting file IX86ver7.mpq from useast.battle.net...
[00:40:30] Downloading file IX86ver7.mpq (length: 6,876 bytes)...
[00:40:30] Successfully downloaded IX86ver7.mpq in .11 seconds @ 61.6kb/s!
[00:40:30] Checking versions and Cd-Key...
[00:40:31] Passed version and Cd-Key check!
[00:40:31] Attempting to log on...
[00:40:31] Successfully logged on!

Note this client was also written in VB. :P
Right, but care to explain why when i call it like any other, everything is fine, apart from the checksum? I figger its not a signed vs unsigned problem.

Not a signed vs unsigned problem, BNLS doesn't work...but it's currently being investigated.  As far as what's different I do not know yet.  I will keep you updated when I find out details.

Ringo

Quote from: UserLoser on August 23, 2006, 01:08 AM
Not a signed vs unsigned problem, BNLS doesn't work...but it's currently being investigated.  As far as what's different I do not know yet.  I will keep you updated when I find out details.
Ok :) but BNLS is not in my IX86ver1.mpq atm (at least i dont think so!)
This problem is why i never finished it yonks ago, but when i extract the dll from the mpq, call checkrevision, everything works perfectly apart from the checksum.
What im asking is, did you have this problem, if so how did you overcome it?
I have a faint memory of reading a topic about this exact thing, and it being somthing do do with C++ and VB6 data types (altho it was so long ago now, i might have been reading somthing totaly differnt)
Im useing checkrevision.dll vs the old IX86Ver1.mpq and calling them both like any other API.

Ideas?

UserLoser

Quote from: Ringo on August 23, 2006, 01:15 AM
Quote from: UserLoser on August 23, 2006, 01:08 AM
Not a signed vs unsigned problem, BNLS doesn't work...but it's currently being investigated.  As far as what's different I do not know yet.  I will keep you updated when I find out details.
Ok :) but BNLS is not in my IX86ver1.mpq atm (at least i dont think so!)
This problem is why i never finished it yonks ago, but when i extract the dll from the mpq, call checkrevision, everything works perfectly apart from the checksum.
What im asking is, did you have this problem, if so how did you overcome it?
I have a faint memory of reading a topic about this exact thing, and it being somthing do do with C++ and VB6 data types (altho it was so long ago now, i might have been reading somthing totaly differnt)
Im useing checkrevision.dll vs the old IX86Ver1.mpq and calling them both like any other API.

Ideas?

It's been quite a while, but IIRC, IX86ver?.dll doesn't actually care about your game executable file handle.  Instead of doing GetModuleHandle("Starcraft.exe") it'll do GetModuleHandle(NULL) to get the handle of the parent, as you could say.  Since YourBot.exe would call CheckRevision in IX86ver?.dll, it'll do GetModuleHandle(NULL) returning the handle of YourBot.exe in memory, then performing the checksum functions on that.  This is why directly calling CheckRevision in IX86ver?.dll will not work.  You will need to create a workaround to patch it, use something like VirtualProtect and this could be accomplished.

Skywing

#26
Updated support for BNLS to comply with the new version checking mechanism has been deployed and is now available for use.

Because the old and the new mechanisms are incompatible, Battle.net servers that have not yet been updated to work with the new binaries will fail version checks until the Blizzard operations team completes their maintenance cycle.

Ringo

Quote from: UserLoser on August 23, 2006, 01:30 AM
It's been quite a while, but IIRC, IX86ver?.dll doesn't actually care about your game executable file handle.  Instead of doing GetModuleHandle("Starcraft.exe") it'll do GetModuleHandle(NULL) to get the handle of the parent, as you could say.  Since YourBot.exe would call CheckRevision in IX86ver?.dll, it'll do GetModuleHandle(NULL) returning the handle of YourBot.exe in memory, then performing the checksum functions on that.  This is why directly calling CheckRevision in IX86ver?.dll will not work.  You will need to create a workaround to patch it, use something like VirtualProtect and this could be accomplished.
Ah, thanks. *wishs he knew asm* :(
Iv read up abit about the VirtualProtect() api, and im understanding whats involed, but what would be the best way to work round this?
Im guessing to overwrite the code to just copy the handle to the exe file into the variable, rather than letting it obtain a handle to the parent?

Hdx

Quote from: Skywing on August 23, 2006, 02:15 AM
Updated support for BNLS to comply with the new version checking mechanism has been deployed and is now available for use.

Because the old and the new mechanisms are incompatible, Battle.net servers that have not yet been updated to work with the new binaries will fail version checks until the Blizzard operations team completes their maintenance cycle.
<3 you man.
As you all know I run JBLS, and It of corse hasn't been updated yet.
So if you wish you use BNLS, on a server that is not been updated yet.
Use JBLS.org as a BNLS server.
And you will be able to pass Check Revision jsut fine.
I'm working on updating JBLS as I post this. But I will refrain from updating my server untill ass of Bnet has been updated.
So that your users will still be able to login via BNLS.
~-~(HDX)~-~

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

MyndFyre

MBNCSUtil has been updated for this change.
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.

|