• Welcome to Valhalla Legends Archive.
 

New WC3 Verbyte?

Started by Blaze, March 01, 2005, 08:22 PM

Previous topic - Next topic

Blaze

Is it 0x13? I can't find my cd.
Quote
Mitosis: Haha, Im great arent I!
hismajesty[yL]: No

Hdx

#1
0x12, and the verHash is unchanged. Hashes can be found Here.
And How long do you think it will take BNLS to update this time :P
JBLS took 10 mins after I noticed it :P Fun.
(Don't flame me for using / Supporting / running JBLS >.<)

Can anyone tell me how to determin the VerHash? I got lucky this time, it still works with the old one.
But maby it has changed. So can anyone tell me how to find it out? And no i don't jsut want you to tell me it, I want you to tell me how to find it for myself. So as I can do it in the future. Please.
~-~(HDX)~-~

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

iago

Quote from: HdxBmx27 on March 01, 2005, 09:13 PM
Can anyone tell me how to determin the VerHash? I got lucky this time, it still works with the old one.
But maby it has changed. So can anyone tell me how to find it out? And no i don't jsut want you to tell me it, I want you to tell me how to find it for myself. So as I can do it in the future. Please.
~-~(HDX)~-~

Packetlog.  It's the second DWord of SID_AUTH_CHECK (outgoing).

You can do it with the .exe too, and a couple API calls, but eh.  When version updates, all I ask for it hashfiles and a dump of SID_AUTH_INFO and SID_AUTH_CHECK from somebody.
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Joe[x86]

SID_AUTH_INFO is easy.
"3RAW" Hrm.. WarCraft three..
"86XI"   Hrm.. Intel.. jah.. g00d
0x11 0x00 0x00 0x00  OMG FOUND IT!
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

Hdx

#4
HUrm I see, Thanks for telling me. Anyone have a log of the game, sence I don't have it installed? Please post it here, so thta I may conferm myself.
As for joe.. That was the old patch, 0x11 was the old verbyte.

As for iago, Would you mid informaing me on htose API calls? Both Java and VB would be nice. But I can find eaither if you tell me one.
Thanks.
~-~(HDX)~-~

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

UserLoser.

Quote from: HdxBmx27 on March 02, 2005, 09:40 AM
As for iago, Would you mid informaing me on htose API calls? Both Java and VB would be nice.

I don't know how java works, so for VB you could use:

GetFileVersionInfoSize, GetFileVersionInfo and VerQueryValue

iago

This functionality is very Windows-specific, so, as a result, Java doesn't support it. 

I actually don't think the version hash does anything, since last update I forgot to update it and everything worked fine..

And I recommend against people posting their packet logs, since it's petty trivial to get your cdkey/password from them.  (password is difficult to retrieve iff you chose a good password)
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Hdx

Hurrm, I get 0x0100178E12 (oboiously wrong.) as a guess with the code I use (to follow)
But i get the correct one when doing it on the SC exe file.. (0x01010202)
Dim R As Long, sBuffer() As Byte,  lngLen As Long,  lPointer As Long, udtVer As VS_FixedFileInfo, VerHash As String
Public Function VerHash() As String
  lngLen = GetFileVersionInfoSize("E:\JBLS\STAR\Starcraft.exe", &H0)
  If lngLen < 1 Then
     VerHash = "0x00"
     Exit Function
  End If

  ReDim sBuffer(lngLen)
  R = GetFileVersionInfo("E:\JBLS\STAR\Starcraft.exe", &H0, lngLen, sBuffer(0))
  R = VerQueryValue(sBuffer(0), "\", lPointer, &H0)
  MoveMemory udtVer, lPointer, Len(udtVer)
 
With udtVer
  VerHash = "0x" & Format$(Hex(.dwFileVersionMSh), "00") & _
      Format$(Hex(.dwFileVersionMSl), "00") & _
      Format$(Hex(.dwFileVersionLSl), "00") & _
      Format$(Hex(.dwFileVersionLSh), "00")
End With
End Function

Curitsey of a google search that returned pretty must everyhitng I used :/
Now, Are Diffrent values used in WC3 then in SC? Or am I compleetly wrong and If either. Please tell me.
~-~(HDX)~-~

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

Eric

#8
You can't have a version hash without hashing the version.

Here's an example taken from the public C CheckRevision source:

*lpdwVersion = ((HIWORD(ffi->dwProductVersionMS) & 0xFF) << 24) | ((LOWORD(ffi->dwProductVersionMS) & 0xFF) << 16) | ((HIWORD(ffi->dwProductVersionLS) & 0xFF) << 8) | (LOWORD(ffi->dwProductVersionLS) & 0xFF);

QuoteAre Diffrent values used in WC3 then in SC?

No.  All Battle.net clients use the same checkrevision libraries.

Eric

#9
Quote from: JoeTheOdd on March 02, 2005, 06:58 AM
SID_AUTH_INFO is easy.
"3RAW" Hrm.. WarCraft three..
"86XI"   Hrm.. Intel.. jah.. g00d
0x11 0x00 0x00 0x00  OMG FOUND IT!

I believe you mean 'WAR3' and 'IX86' and you have the order in reverse.  It should be the platform ID followed by the product ID.

UserLoser.

Quote from: LoRd[nK] on March 02, 2005, 10:23 PM
You can't have a version hash without hashing the version.

Hashing the version?

Eric

Quote from: UserLoser on March 02, 2005, 11:12 PM
Quote from: LoRd[nK] on March 02, 2005, 10:23 PM
You can't have a version hash without hashing the version.

Hashing the version?

If you know of any better terminology, I'd like to hear it.  :p

Hdx

VerHash = "0x" & Hex((LShift((.dwProductVersionMSh And &HFF), 24)) Xor _
                (LShift((.dwProductVersionMSl And &HFF), 16)) Xor _
                (LShift((.dwProductVersionLSh And &HFF), 8)) Xor _
                (.dwProductVersionLSl And &HFF))

Don't yell at me for being wrong >.<

Oh, Well, Desiered value is 0x01010202
Returned value is 0x1010203 ...
Considering the returned value is 7 chrs long, and the desighered value is 8 (DWORD correct), Would simply padding it on the left work? (VerHash = "0x" & Right("00000000" & Returned, 8) ? )
But why do I get 3, insted of 2?

Thanks for all your help sofar guys, this is acually a good way to teach things :P
~-~(HDX)~-~

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

Eric

Quote from: HdxBmx27 on March 03, 2005, 02:54 AM
VerHash = "0x" & Hex((LShift((.dwProductVersionMSh And &HFF), 24)) Xor _
                (LShift((.dwProductVersionMSl And &HFF), 16)) Xor _
                (LShift((.dwProductVersionLSh And &HFF), 8)) Xor _
                (.dwProductVersionLSl And &HFF))

Don't yell at me for being wrong >.<

Oh, Well, Desiered value is 0x01010202
Returned value is 0x1010203 ...
Considering the returned value is 7 chrs long, and the desighered value is 8 (DWORD correct), Would simply padding it on the left work? (VerHash = "0x" & Right("00000000" & Returned, 8) ? )
But why do I get 3, insted of 2?

Thanks for all your help sofar guys, this is acually a good way to teach things :P
~-~(HDX)~-~

| in Visual Basic is Or.

Hdx

#14
Tryed both ways, produces same result. But i'll Mod it to be more in-tune with BnetAuth I guess.
~-~(HDX)~-~

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