18 Δεκ 2009

World of Warcraft, Battle.net accounts and Login Problems

OK, another post in English for the same reasons as the previous one; How to digitally sign a file on Windows platform...

Blizzard Battle.net accounts
Blizzard recently changed the way World of Warcraft (WoW) players log into the game. Before the change, payers needed to input their WoW account name and their WoW account password. On November the 12th, Blizzard made it mandatory for players to "merge" their WoW accounts with a battle.net account they should create. After the merge, players can only login with their battle.net account.

With this change, came a lot of problems because the authentication procedure, the servers and IP addresses used, changed as well. I have made an effort to solve this mystery, using packet analyzers / sniffers (like SmartSniff from Nirsoft). All of the following information has been collected using WoW EN-GB Client version 3.3.0 (11159) connecting to European Servers. It was also useful to run WoW with the parameter -console to be able to see the troubleshooting messages within the debug console. Here is some detailed information about WoW console.

I will now try to post a summury of what I have come up thus far...

World of Warcraft , server IP addresses and connections
When you start the Launcher.exe there is the following network activity:

  • DNS Lookup for eu.version.worldofwarcraft.com which resolves to multiple IP addresses:
  • 80.239.178.131, 80.239.178.132, 80.239.232.125, 80.239.232.126, 80.239.232.127, 80.239.232.128, 80.239.232.129, 80.239.232.130, 80.239.232.131, 80.239.232.132, 80.239.148.125, 80.239.148.126, 80.239.148.127, 80.239.148.128, 80.239.148.129, 80.239.148.130, 80.239.148.131, 80.239.148.132, 80.239.178.126, 80.239.178.127, 80.239.178.128, 80.239.178.129, 80.239.178.130
  • TCP port 80 connect to one of the IP addresses above for eu.version.worldofwarcraft.com. This connection goes through the web proxy server, if you have one configured in Internet Options.
  • 11x TCP port 80 connect to 80.239.186.21 IP of launcher.wow-europe.com. These connections go through the web proxy server, if you have one configured in Internet Options.

When you launch WoW.exe there is the following network activity
  • DNS Lookup for status.wow-europe.com which resolves to IP 80.239.186.34.
  • DNS Lookup for launcher.wow-europe.com which resolves to IP 80.239.186.21.
  • DNS Lookup for eu.scan.worldofwarcraft.com which resolves to multiple IP addreses: 80.239.178.126, 80.239.178.127, 80.239.178.128, 80.239.178.129, 80.239.178.130, 80.239.178.131, 80.239.178.132.
  • DNS Lookup for eu.logon.battle.net which resolves to 213.248.127.130.
  • TCP port 80 connect to 80.239.186.34 IP of status.wow-europe.com. This connection goes through the proxy if you have one configured in Internet Options.
  • TCP port 80 connect to 80.239.186.21 IP of launcher.wow-europe.com This connection goes through the proxy if you have one configured in Internet Options.
  • TCP port 80 connect to 80.239.178.130 one of the IPs of eu.scan.worldofwarcraft.com. This connection goes through the proxy if you have one configured in Internet Options.
  • After you input your battle.net account and password and hit enter, the client connects to:
    TCP port 1119 connect to 213.248.127.130 IP of eu.logon.battle.net. This connection does not make use of any proxy you might have configured in Internet Options. This connection is sensitive; Blizzard checks the IP address the client requested to connect to and login fails if it is different from 213.248.127.130 (this happens on sockets connections - check the section below on how to socketify WoW)
  • After the authentication is complete and successful, the client connects with the IP address of your realm on port 3724. To find the IP address of your realm, take a look below for instructions.

How to find the IP address of your realm
After you have successfully connected to your realm and you're seeing the realm character selection screen, open a command prompt as administrator (Start -> Run -> cmd) and type the following:
netstat -n -p tcp -b | more
Look for TCP XXX.XX.XX.XX:XXXX YY.YYY.YYY.YY:3724 ESTABLISHED ZZZZ [WoW.exe]
The IP address of your realm is exactly before the :3724 part

UPDATE
WoWwiki has a nice list of all the EU realms' IP addresses and the US realms' IP addresses.

How to run WoW socketified (with DNS lookups enabled)
There are some fast-ping services arround (like SmoothPing) which users make use of to lower their latency with WoW servers. These services rely on tools like SocksCap, WideCap, ProxyCapProxifierFreeCap or a custom client, to run the game. In brief, you open up a connection with a server that has very low latency with WoW servers and tunnel the communication of WoW client through this "fast" connection. Note that in this case, all DNS lookups go through your regular connection and DNS server.

After the merge, there have been a lot of issues using these services. Mainly because Blizzard changed a lot of things after the battle.net account merge. So, what we'll need is a proxy server to connect to and FreeCap. In brief, setup FreeCap to use the Socks5 proxy server (Settings -> Proxy Settings). After that, open FreeCap, right click on an empty space inside the FreeCap window and choose New application. Browse for your WoW.exe file, give a name and then click OK. To run WoW socketified, open FreeCap and double click on the WoW icon. All the traffic will pass through the proxy server.

How to run WoW socketified (with DNS lookups disabled)
Note: In this scenario, I've found out, after too many tries and failures, that SocksCap isn't performing properly in my case and I could not login to WoW. I used FreeCap instead.
If you are behind some kind of firewall that is not allowing you any DNS lookups of internet hosts, you need to pay special attention to include the name and IP addresses of the following Blizzard Server, in the hosts file:
  • 80.239.186.34 status.wow-europe.com
  • 80.239.186.21 launcher.wow-europe.com
  • 80.239.178.130 eu.scan.worldofwarcraft.com
  • 213.248.127.130 eu.logon.battle.net
The Name Resolution setting of  FreeCap needs to be configured to "Local then remote" If you have the setting at "Remote" you will get the following error in debug console
GRUNT: state: LOGIN_STATE_CONNECTING result: LOGIN_OK
Connecting to 0.0.0.4:1119
Battle.net Authentication failure code: 103
GRUNT: state: LOGIN_STATE_TOKEN result: LOGIN_OK
GRUNT: state: LOGIN_STATE_FAILED result: LOGIN_BAD_SERVER_PROOF
or this regular message:
You are connecting to an invalid game server.
This is because Blizzard cross-checks the the IP address your client requested (in the above case 0.0.0.4:1119 due to socketing the client and resolving IP address remotely) with the IP address of the Blizzard Server. If they are different, authentication will fail.
Carry on now with the same procedure as above - How to run WoW socketified (with DNS lookups enabled).

How to play WoW at work
In most cases, we can't login and play WoW at work. This happens because there exist different kinds of restrictions, firewalls and content filtering systems in most organizations. What we'll be doing in this guide is to connect to our home network and use our home's internet connection to login and play WoW.

We will need the following:
  1. Internet Router at home with port forwarding ability 
  2. A DynamicDNS service like DynDNS.com
  3. A Linux box or an SSH server at home
  4. Software: PuTTY and FreeCap. If your corporate network uses a proxy server with NTLM authentication, we'll aslo need NTLM Authorization Proxy Server
To be continued....

Socializer Widget By Blogger Yard
SOCIALIZE IT →
FOLLOW US →
SHARE IT →