Emulate Battle.net

Started by MADCATX, February 22, 2010, 06:18:36 AM

Previous topic - Next topic

MADCATX

I writed java server application(with response to login packets) and changed my IP to 12.129.206.131, however game don't want to connect to this address, further investigation showed that game connects to 12.129.206.133:bnetfile(1120) to download battle.net settings file. After that file redirects to 12.129.206.131. Protocol to get the file is Blizzard HTTP(User-Agent: Blizzard Web Client, Host: us-beta.patch.battle.net:1120). To emulate server we need to change this file and log all packets to battle.net with WireShark.

hectorzx

to connect to your server modifies the host file and adds

127.0.0.1    us-beta.logon.battle.net
127.0.0.1    s.launcher.battle.net
127.0.0.1    enUS.logon.battle.net

Itry to create a battlenet emulator, but when connecting to battlenetsends a different package each time, is 919 bytes, some data are equalbut some are different.
http://www.plunder.com/Data-download-74b008a2a4.htm

if I put one of those "data" gives me error
Image Error.



PD: Ctrl+alt+F to see FPS ingame.

Fulger

#2
Nice But there is no way to make this error goo away like the loginn screen ?

jing_K.O.B

Quote from: hectorzx on February 22, 2010, 10:39:15 AM
to connect to your server modifies the host file and adds

127.0.0.1    us-beta.logon.battle.net
127.0.0.1    s.launcher.battle.net
127.0.0.1    enUS.logon.battle.net

Itry to create a battlenet emulator, but when connecting to battlenetsends a different package each time, is 919 bytes, some data are equalbut some are different.
http://www.plunder.com/Data-download-74b008a2a4.htm

if I put one of those "data" gives me error

have you tried comparing the outgoing and incoming packets? it may be that the client is requesting slightly different information, or information in a different order each time.
if you get the same responce for each packet, you will just have to program the roesponces to each request. if it seems more random, you may have to wait till we can decompile the packets and see what exactly is being sent and recived.

newbiz

A changing message stream from session to session indicates either:
- A context-dependent message sent from the client (i.e. sending local timestamp or something similar)
- A session-dependent message sent accordingly to a received message from the server (most likely).


As the 2nd case is the most likely, either cryptanalyze the previous received message against the newly sent one (should be linear).
Or in case of a hash-like formula (non linear), you should quickly recognize the hash signature in any disassembler.


Btw, why do you bother emulating a bnet server while a client patch skipping the remote call & hard coded map list would be enough ?


(ps: sorry, i'm not native english speaker :/)

Blackcode

#5
I totaly agree with newbiz except emulating a bnet server could lead us to our supreme goal... multiplayer games maybe :D

MADCATX

The sc2 server I have written in java yesterday, link to the server:

JRE(must install to run) - http://www.java.com/ru/download/manual.jsp, Server(Only Login with responses - badPass/NoSC2) - http://loino.co.cc/upload-files/tmp/SC2BattleNET.jar

I need packets dump or sc2 key in order to furter develop it.

Gamewiz

Quote from: MADCATX on February 23, 2010, 03:40:28 PM
The sc2 server I have written in java yesterday, link to the server:

JRE(must install to run) - http://www.java.com/ru/download/manual.jsp, Server(Only Login with responses - badPass/NoSC2) - http://loino.co.cc/upload-files/tmp/SC2BattleNET.jar

I need packets dump or sc2 key in order to furter develop it.

Wow man excellent job! If you created a server does that mean we could theoratically play both AI and multiplayer (multiplayer against only for those who join the fake bnet server)?

If it's your server than how come you still need a key? Sorry, I'm a newb and I'm just trying to understand the progress. :)

Blackcode

he is just emulating server response.... as he does not have the auth packet he is using the one he has....
He needs an authorized session to continue his work..
In my opinion it's the right way to go to....


MADCATX

Quote from: Gamewiz on February 23, 2010, 04:54:05 PM
Wow man excellent job! If you created a server does that mean we could theoratically play both AI and multiplayer (multiplayer against only for those who join the fake bnet server)?
 
If it's your server than how come you still need a key? Sorry, I'm a newb and I'm just trying to understand the progress. :)
I created server logic(Open/Close Sockets, send Packets, patch windows hosts file, etc...), but I still don't know what packets I must send to client so client can login. All data server sends is data mined by me with wireshark. I don't have the key to SC2, so i can't data mine other data, needed to client to Interact with BNet.

WildFire

wow man way to go... wish I had a key to let you use :(

Gamewiz

Quote from: MADCATX on February 23, 2010, 05:00:51 PM
Quote from: Gamewiz on February 23, 2010, 04:54:05 PM
Wow man excellent job! If you created a server does that mean we could theoratically play both AI and multiplayer (multiplayer against only for those who join the fake bnet server)?

If it's your server than how come you still need a key? Sorry, I'm a newb and I'm just trying to understand the progress. :)
I created server logic(Open/Close Sockets, send Packets, patch windows hosts file, etc...), but I still don't know what packets I must send to client so client can login. All data server sends is data mined by me with wireshark. I don't have the key to SC2, so i can't data mine other data, needed to client to Interact with BNet.

See if you can "borrow" the key from the guy who is updating the twitter. Since he apparantly got one, you'd think he'd help us all in the progress of getting this up and running...

WildFire

Quote from: Gamewiz on February 23, 2010, 05:19:37 PM
Quote from: MADCATX on February 23, 2010, 05:00:51 PM
Quote from: Gamewiz on February 23, 2010, 04:54:05 PM
Wow man excellent job! If you created a server does that mean we could theoratically play both AI and multiplayer (multiplayer against only for those who join the fake bnet server)?

If it's your server than how come you still need a key? Sorry, I'm a newb and I'm just trying to understand the progress. :)
I created server logic(Open/Close Sockets, send Packets, patch windows hosts file, etc...), but I still don't know what packets I must send to client so client can login. All data server sends is data mined by me with wireshark. I don't have the key to SC2, so i can't data mine other data, needed to client to Interact with BNet.

See if you can "borrow" the key from the guy who is updating the twitter. Since he apparantly got one, you'd think he'd help us all in the progress of getting this up and running...

yeah all you need it for is what an hour maybe? I dont see the problem... also mention I will donate 10$ if you all can host a bnet server :D

hegemonwiggin

Quote from: MADCATX on February 23, 2010, 05:00:51 PM
Quote from: Gamewiz on February 23, 2010, 04:54:05 PM
Wow man excellent job! If you created a server does that mean we could theoratically play both AI and multiplayer (multiplayer against only for those who join the fake bnet server)?

If it's your server than how come you still need a key? Sorry, I'm a newb and I'm just trying to understand the progress. :)
I created server logic(Open/Close Sockets, send Packets, patch windows hosts file, etc...), but I still don't know what packets I must send to client so client can login. All data server sends is data mined by me with wireshark. I don't have the key to SC2, so i can't data mine other data, needed to client to Interact with BNet.

You should just hop on the IRC chat and talk with some of the devs. I'm sure they have the information you need.

MADCATX

Quote from: hegemonwiggin on February 23, 2010, 05:51:50 PM
You should just hop on the IRC chat and talk with some of the devs. I'm sure they have the information you need.
I tried to, but no one answers...