From: Ron <ia...@va...> - 2005-03-16 23:28:36
|
I have an account, although I forget what it is. I'm not in a big hurry since it's big homework time right now. My courses end at the beginning of April, so we're in the crunch time. We reversed it first by packet logging. We got an idea of what changes and what doesn't. Somebody at some point recognized that the NLS was very similar to SRP (http://srp.stanford.edu), so that was a bit of a starting point. After that, a couple guys (before I got in on the project) faced a lot of difficulties, such as calls to weird Storm.dll functions (the ordinals were 601 - 647). I had a look and managed to identify a couple, and from those I managed to get the rest from the Mac version of Storm.dll (which actually has function names). You can see them here: http://www.javaop.com/~iago/Storm.txt Armed with that, there wasn't actually much more to do. If you read through SRP.html, I make a couple comments about where it differs from standard SRP. Mainly, where it calculates M[1] and K. Me and TheMinistered did K, and Maddox did M[1]. Maddox put it all together and coded it in C++ and got it all working. It was actually a lot easier than it seemed to be. What we had, at that point, was just a mess of code. Variables weren't named well and such. But it worked. I converted it, line by line, to Java. It was still a mess. It wasn't until about a month ago when I cleaned it all up and named the functions after their corresponding variables from SRP. And wrote SRP.html. Now that I've done that, I understand it pretty well. I'll get back to you with my SourceForge username when I find it. It's probably iago, though :) If you need to contact me via IM, feel free: aim: iagox86 msn: ia...@d2... icq: 96228890 I rather like discussing it here, though, where others can see. Ron Zilo wrote: > On 03/16/05 21:45:21, Ron wrote: > >> The problem is that the cdkey decryption is different for War2 and >> D2 (and is common beween the two of them), and the login is totally >> different for War3. War3 uses different messages >> (SID_AUTH_ACCOUNTLOGON [0x53] and SID_AUTH_ACCOUNTLOGONPROOF [0x54]) >> to log in. The packets are described in a document I wrote, >> http://www.javaop.com/~iago/SRP.html. They are cryptographically >> strong, and also pretty hard to do it in C. BNCSUtil, of course, >> can do it :P > > > Sorry, I didn't undestand... so, my new answer is that it support > only starcraft like games (for cdkey and login) :) > > I'm reading your headers, and apart from classes (plugin is in C) and > small problems (ex, nls_account_create() and nls_account_logon() > create packets in form of buffers to send, and my plugin manage > packets in others ways I'd like to keep) I think that all the rest > should be easily used as is. I'll check better anyway... > >> By the way, if you've never seen it, have a look at >> http://bnetdocs.valhallalegends.com. That's maintained by Arta[vL] >> and others (including me). It has tons of great information. > > > I used it together with your java bot for my code, very very useful > thanks :) > >> Just for fun, I'll give the history of the war3 login. >> [...] >> Kind of a neat story. To me, anyway. > > > Cool, really. > And how do you succeed to reverse the login process? Well, simply > reading the program disassembled code, or other? > Very difficult anyway :/ > > Anyway, if you want to join the project on sourceforge, just create > an account on it (if you haven't one already) and I'll let you enter. > The more we are, the better is :) > > -- > Dario Zilocchi > ko...@gm... > > Listening: 03 radiohead amnesiac - pulk pull revolving doors > > > > |