Valhalla Legends Archive

Programming => Battle.net Bot Development => Topic started by: UserLoser. on April 17, 2004, 11:07 AM

Title: War3 v1.15 beta patch - new stuff! (updated)
Post by: UserLoser. on April 17, 2004, 11:07 AM
0x35 (C->S) - Profile request
----------------
(DWORD) Cookie
(STRING) Username

0x35 (S->C)
----------------
(DWORD) Cookie
(STRING/BYTE) Unknown - Always seen 0
(STRING) profile\description value
(STRING) profile\location value
(DWORD) Clan name




0x82 (C->S) - Clan user information
----------------
(DWORD) Cookie
(DWORD) Clan tag of user
(STRING) Username

0x82 (S->C)
----------------
(DWORD) Cookie
(STRING/BYTE) Unknown - Always seen 0
(STRING) Clan name
(BYTE) Rank in clan
(FILETIME) Date joined
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: evileye on April 17, 2004, 02:37 PM
Very thx!
btw, is there a 0x80 packet?
I've seen description of 0x70 to 0x79 and 0x81, 0x82 packet, but 0x80 lacked
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Stealth on April 18, 2004, 02:31 AM
Can these be requested by Warcraft III clients on the standard (non-beta) servers?
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Soul Taker on April 18, 2004, 02:50 AM
Quote from: Stealth on April 18, 2004, 02:31 AM
Can these be requested by Warcraft III clients on the standard (non-beta) servers?
Try it...?
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: FuzZ on April 18, 2004, 10:20 AM
Quote from: Soul Taker on April 18, 2004, 02:50 AM
Quote from: Stealth on April 18, 2004, 02:31 AM
Can these be requested by Warcraft III clients on the standard (non-beta) servers?
Try it...?
Why should he take the risk of getting IP Banned when someone may have already tested it? ;p

BTW, grats on your 500 posts Soul Taker
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Stealth on April 18, 2004, 12:15 PM
Quote from: Soul Taker on April 18, 2004, 02:50 AM
Quote from: Stealth on April 18, 2004, 02:31 AM
Can these be requested by Warcraft III clients on the standard (non-beta) servers?
Try it...?

Bah. No, they can't.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Spht on April 18, 2004, 10:14 PM
Quote from: UserLoser. on April 17, 2004, 11:07 AM
0x35 (S->C)
----------------
(DWORD) Cookie
(STRING/BYTE) Unknown - Always seen 0
(STRING) profile\description value
(STRING) profile\location value
(DWORD) Clan name

That's the clan's tag, not name.

Quote from: UserLoser. on April 17, 2004, 11:07 AM
0x82 (S->C)
----------------
(DWORD) Cookie
(STRING/BYTE) Unknown - Always seen 0
(STRING) Clan name
(BYTE) Rank in clan
(FILETIME) Date joined

That "unknown" is a success byte. If non-zero, the message will be 5 bytes.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: nYko on April 19, 2004, 12:42 AM
It would be cool if BNLS supported the 1.15 beta patch, so I could try those packets out.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Spht on April 19, 2004, 07:17 AM
Quote from: nYko on April 19, 2004, 12:42 AM
It would be cool if BNLS supported the 1.15 beta patch, so I could try those packets out.

Not really, then we wouldn't be able to use Warcraft III on non-Westfall. But it might be nice if someone were to set up a temporarly BNLS server somewhere which uses Warcraft III 1.15 files.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: MyndFyre on April 19, 2004, 08:30 AM
Quote from: Spht on April 19, 2004, 07:17 AM
Quote from: nYko on April 19, 2004, 12:42 AM
It would be cool if BNLS supported the 1.15 beta patch, so I could try those packets out.

Not really, then we wouldn't be able to use Warcraft III on non-Westfall. But it might be nice if someone were to set up a temporarly BNLS server somewhere which uses Warcraft III 1.15 files.

However, wouldn't it be okay to set up an additional two product IDs -- Warcraft III 1.15 = 9, Warcraft III The Frozen Throne 1.15 = 10?  Depends on how BNLS works I suppose :P

[conjecture]
Since I'm getting "unrecognized" version from 0x51 (because I've updated my version byte and the exe version string), I believe that there are two things left for me to update: the second DWORD of 0x51, Exe Version, which I've gotten by packetlogging, and then the EXE hash, the third DWORD of 0x51.

The conjecture is this: is the EXE hash a standard double-hash -- with the server and client tokens -- of the EXE version string?
[/conjecture]

If so, it should be fairly simple, by packetlogging, to get BNLS to do the work (using BNLS_HASHDATA).  You might need to play around with your stuff a little bit though. :P
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: iago on April 19, 2004, 08:32 AM
Quote from: Myndfyre on April 19, 2004, 08:30 AM
Quote from: Spht on April 19, 2004, 07:17 AM
Quote from: nYko on April 19, 2004, 12:42 AM
It would be cool if BNLS supported the 1.15 beta patch, so I could try those packets out.

Not really, then we wouldn't be able to use Warcraft III on non-Westfall. But it might be nice if someone were to set up a temporarly BNLS server somewhere which uses Warcraft III 1.15 files.

However, wouldn't it be okay to set up an additional two product IDs -- Warcraft III 1.15 = 9, Warcraft III The Frozen Throne 1.15 = 10?  Depends on how BNLS works I suppose :P

[conjecture]
Since I'm getting "unrecognized" version from 0x51 (because I've updated my version byte and the exe version string), I believe that there are two things left for me to update: the second DWORD of 0x51, Exe Version, which I've gotten by packetlogging, and then the EXE hash, the third DWORD of 0x51.

The conjecture is this: is the EXE hash a standard double-hash -- with the server and client tokens -- of the EXE version string?
[/conjecture]

If so, it should be fairly simple, by packetlogging, to get BNLS to do the work (using BNLS_HASHDATA).  You might need to play around with your stuff a little bit though. :P

If I correctly understand what you're saying, then no.   It's not a hash of the EXE version string, it's a hash of the actual data files.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Spht on April 19, 2004, 08:34 AM
Quote from: Myndfyre on April 19, 2004, 08:30 AM
However, wouldn't it be okay to set up an additional two product IDs -- Warcraft III 1.15 = 9, Warcraft III The Frozen Throne 1.15 = 10?  Depends on how BNLS works I suppose :P

That'd probably be too much work considering the beta is only lasting a couple weeks.

If someone *really* wants to get on the server, they can download the CheckRevision DLL on the bot development web site and run a local CheckRevision on the game (assuming you own Warcraft III 1.15), and use BNLS for everything else. This is probably the fastest solution now.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: MyndFyre on April 19, 2004, 02:32 PM
Quote from: Spht on April 19, 2004, 08:34 AM
Quote from: Myndfyre on April 19, 2004, 08:30 AM
However, wouldn't it be okay to set up an additional two product IDs -- Warcraft III 1.15 = 9, Warcraft III The Frozen Throne 1.15 = 10?  Depends on how BNLS works I suppose :P

That'd probably be too much work considering the beta is only lasting a couple weeks.

If someone *really* wants to get on the server, they can download the CheckRevision DLL on the bot development web site and run a local CheckRevision on the game (assuming you own Warcraft III 1.15), and use BNLS for everything else. This is probably the fastest solution now.

Having looked through BotDev on your suggestion, where is the CheckRevision DLL?  I can't seem to find it....
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Tuberload on April 19, 2004, 02:38 PM
Quote from: Myndfyre on April 19, 2004, 02:32 PM
Quote from: Spht on April 19, 2004, 08:34 AM
Quote from: Myndfyre on April 19, 2004, 08:30 AM
However, wouldn't it be okay to set up an additional two product IDs -- Warcraft III 1.15 = 9, Warcraft III The Frozen Throne 1.15 = 10?  Depends on how BNLS works I suppose :P

That'd probably be too much work considering the beta is only lasting a couple weeks.

If someone *really* wants to get on the server, they can download the CheckRevision DLL on the bot development web site and run a local CheckRevision on the game (assuming you own Warcraft III 1.15), and use BNLS for everything else. This is probably the fastest solution now.

Having looked through BotDev on your suggestion, where is the CheckRevision DLL?  I can't seem to find it....

http://botdev.valhallalegends.com/files/checkrevision.zip
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: tA-Kane on April 20, 2004, 09:43 PM
Quote from: Spht on April 19, 2004, 08:34 AMIf someone *really* wants to get on the server, they can download the CheckRevision DLL on the bot development web site and run a local CheckRevision on the game (assuming you own Warcraft III 1.15)
Am I missing something? I was under the impression that the implementation of CheckRevision() in that DLL does not work for WarCraft 3 or TFT?
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Eric on April 20, 2004, 11:25 PM
Quote from: tA-Kane on April 20, 2004, 09:43 PM
Quote from: Spht on April 19, 2004, 08:34 AMIf someone *really* wants to get on the server, they can download the CheckRevision DLL on the bot development web site and run a local CheckRevision on the game (assuming you own Warcraft III 1.15)
Am I missing something? I was under the impression that the implementation of CheckRevision() in that DLL does not work for WarCraft 3 or TFT?

Warcraft III uses the same CheckRevision() as all the other products requiring auth use; similar CD-Key decoding/hashing structure too, I believe.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: UserLoser. on April 21, 2004, 11:06 AM
Quote from: LoRd[nK] on April 20, 2004, 11:25 PM

Warcraft III uses the same CheckRevision() as all the other products requiring auth use; similar CD-Key decoding/hashing structure too, I believe.

IIRC, Warcraft III uses two key value tables, one that's 256 bytes, and another which is 480.  I believe the 256 one is almost same, if not, exact to the current Diablo II/Warcraft II CDkey decoding.  As far as the hashing, I think it's the same.  You take the values returned (in this case, iirc a 10 byte value, and dunno the other one) and hash them the same
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: MyndFyre on April 22, 2004, 12:45 PM
Allright, so I recompiled the CheckRevision function into a Win32 DLL with the function exported, and I am successfully calling it with the DllImport("CheckRevision.dll") attribute from my C# code (I checked the packet log).  But, I think I'm passing in the wrong files.

I'm using (right now) war3.exe, storm.dll, and game.dll for CheckRevision.  Here's the exact call:


int authcheckver = 0, authcheckcsum = 0;
CheckRevision("C:\\Program Files\\Warcraft III\\war3.exe", @"C:\Program Files\Warcraft III\storm.dll", @"C:\Program Files\Warcraft III\game.dll", this.checkForm, ref authcheckver, ref authcheckcsum, this.versionCheckStatString, this.mpqFile);


(Yes, the ref keyword is effectively the same as passing a pointer).

this.versionCheckStatString is set correctly when I'm done.

this.checkForm is the string that contains the hashing formula.

I'm getting "Game version not recognized" back.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: iago on April 22, 2004, 01:27 PM
It's possible you have them in the wrong order, since order does matter.

If you want a java version (closer to what you're doing) let me know and I'll send it to you.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: LordNevar on April 22, 2004, 01:28 PM
Your getting "game version incorrect" is not caused by your hash calls or your cdkey calls, it's cause something most people don't know there's 2 cdkey's being swapped around while using wc3. There's the product key that use send to bnet, and the other key that bnet sends back to you in response to identify your cdkey, and game information.  As Far as I know skywing's the only one that's been able to emulate that key. If anyone can figure out any info on the other key, or if skywing would give us a hint, than wc3 hashing is indeed very prossible.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Soul Taker on April 22, 2004, 02:47 PM
Quote from: LordNevar on April 22, 2004, 01:28 PM
Your getting "game version incorrect" is not caused by your hash calls or your cdkey calls, it's cause something most people don't know there's 2 cdkey's being swapped around while using wc3. There's the product key that use send to bnet, and the other key that bnet sends back to you in response to identify your cdkey, and game information.  As Far as I know skywing's the only one that's been able to emulate that key. If anyone can figure out any info on the other key, or if skywing would give us a hint, than wc3 hashing is indeed very prossible.
What?
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: Eric on April 22, 2004, 06:00 PM
Quote from: Soul Taker on April 22, 2004, 02:47 PM
Quote from: LordNevar on April 22, 2004, 01:28 PM
Your getting "game version incorrect" is not caused by your hash calls or your cdkey calls, it's cause something most people don't know there's 2 cdkey's being swapped around while using wc3. There's the product key that use send to bnet, and the other key that bnet sends back to you in response to identify your cdkey, and game information.  As Far as I know skywing's the only one that's been able to emulate that key. If anyone can figure out any info on the other key, or if skywing would give us a hint, than wc3 hashing is indeed very prossible.
What?

I don't even think he knows what he just said.
Title: Re:War3 v1.15 beta patch - new stuff! (updated)
Post by: MyndFyre on April 22, 2004, 06:13 PM
Quote from: LoRd[nK] on April 22, 2004, 06:00 PM
Quote from: Soul Taker on April 22, 2004, 02:47 PM
Quote from: LordNevar on April 22, 2004, 01:28 PM
Your getting "game version incorrect" is not caused by your hash calls or your cdkey calls, it's cause something most people don't know there's 2 cdkey's being swapped around while using wc3. There's the product key that use send to bnet, and the other key that bnet sends back to you in response to identify your cdkey, and game information.  As Far as I know skywing's the only one that's been able to emulate that key. If anyone can figure out any info on the other key, or if skywing would give us a hint, than wc3 hashing is indeed very prossible.
What?

I don't even think he knows what he just said.

can't you guys see?  Since Skywing did it, it's "prossible."

Is that a synthesis of "probable" and "possible" ?