This document serves as an aggregate of information about Battle.net v2. Much of this information is available elsewhere. A lot of information has been taken from public and private repositories around the web.
Battle.net v2 is responsible for bringing World of Warcraft, Starcraft II, and Diablo III online to Blizzard's gaming service. It is also responsible for version checks, in-game news, and much more. Eventually, according to Blizzard themselves, Battle.net v2 will support the "older games" which may or may not leave out Shareware/Demo clients.
- The protocol uses HTTP for patches, news, and other things.
- The protocol operates on bit-level, as opposed to byte-level (like v1 was).
- When there is less than a full byte in a packet received (when the packet is not [size % 8]), the remaining bits are left null (0). When another packet is received, the remaining bits should be used for the beginning of the new packet, and not left null as they were received.
- Some data in packets are still read as full bytes, such as
UINT32s (32 bits).
- The protocol uses 7 or 11 bits in the packet header. The first 6 bits are the
packetID, the 7th bit is
isChannelis TRUE, then the header contains an extra 4 bits for the
channelID, otherwise there are no bits left in the header.
- Bits are read right to left, fields are read left to right. So in the packet header, if it said
0000100, then you would be parsing the
packetIDfirst which would be
0x01, and then you would parse
inChannelnext which would be FALSE.
- The protocol transmits in plaintext during initial communication, but later on uses RC4 encryption for everything except the packet header.
- The protocol encapsulates the SRP protocol for account login and creation. For more information about standard SRP, see RFC 2945.
 Needs verification if this is standard SRP or Blizzard's own implemention of SRP.
This information was donated by RealityRipple. At the time of writing, I had no time to paste and format the information into this document here, so for now accept the pastebin link as part of this document; it will later become integrated into this document so we do not have pastebin links heading everywhere.
Other information may come later. Until then, feel free to comment.