• Welcome to Valhalla Legends Archive.
 

Solved.

Started by Dro, April 12, 2005, 01:24 PM

Previous topic - Next topic

Dro


UserLoser.

BYTE[20] - M1
BYTE[32] - S
BYTE[32] - V

See this page for more info

Dro

#2
Solved.

MyndFyre

Quote from: Dro on April 12, 2005, 02:17 PM
Quote from: UserLoser on April 12, 2005, 02:13 PM
BYTE[20] - M1
BYTE[32] - S
BYTE[32] - V

See this page for more info

What is M1, S, V?
What variables are those and how do they relate to the account password and such?

UserLoser pointed you to that page for a reason.  Battle.net uses the SRP (Secure Remote Password) exchange for user authentication, which includes account creation and password change.

M1 is a calculated hash of several components.  It's the client password proof, calculated via the following formula:
M1 = SHA1(SHA1(g) xor SHA1(N), SHA1(Username), s, A, B, K)
Note that SHA1 is that standard SHA-1 hashing function, not the "broken" implementation found in other Blizzard clients.
S is the "secret" value.  Essentially, both sides calculate it independently, with different values, and are supposed to come up with the same result.  This is how they know they have a valid exchange mechanism.  It is calculated for the client with the formula:
S = ((N + B - v) % N)(a + u * x) % N
V is the password verifier, calculated with:
v = gx % N

All of this information can be found on BnetDocs.  If you're using BNLS, it supports calculating the values for these messages.  See the BNLS Protocol Specification for more information.

Additionally, iago[vL] has documented the SRP key exchange used with Battle.net, and it should prove to be an invaluable reference.

Next time, please read information on the "see also" or "see for more information" pages that we link to instead of just asking for information found on those pages.  It will make us that much more inclined to help you.
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.

iago

Quote from: MyndFyre on April 12, 2005, 02:49 PM
Additionally, iago[vL] has documented the SRP key exchange used with Battle.net, and it should prove to be an invaluable reference.

That'll give you everything you need to know including packet structures, formulas, and code samples (in Java, but easily ported to .net or C).
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Dro

#5
Solved.

iago

Quote from: Dro on April 13, 2005, 12:34 AM
SID_AUTH_ACCOUNTCHANGE = BNCS packet 0x55 ?
SID_AUTH_ACCOUNTCHANGEPROOF = BNCS packet 0x56 ?

[C>0x55] SID_AUTH_ACCOUNTCHANGE
[S>0x55] SID_AUTH_ACCOUNTCHANGE
[C>0x56] SID_AUTH_ACCOUNTCHANGEPROOF
[S>0x56] SID_AUTH_ACCOUNTCHANGEPROOF

Yep.  Sorry, I forgot that Arta hasn't added that to BNetDocs yet. 
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*