Blizzard and hacker war 2: Blizzard's first blow

Source: Internet
Author: User
Tags blizzard

In the later stages of wow development, blizzard was able to free up manpower to upgrade the d2x 1.09d that lasted for two years. Due to the flood of hacks during the 1.09d period, blizzard felt it was necessary to crack down on such arrogance. Therefore, it joined the hacks detection mechanism, which was often mentioned in the 1.10 period.

What is packet? Packet is a network packet. In D2, the interaction between the server and the client is performed by sending packet to each other. The packet in D2 is divided into two types: Out-of-game (before entering the game) packet and in-game (in-game) packet. Here we mention in-game packet. The first byte of in-game packet is the packet ID, indicating the meaning of the packet, followed by the corresponding (variable length) parameter. For example, Id 01 represents the walk command. The length is 5 bytes. The ID is followed by two 16-bit parameters, indicating the target coordinate of the walk. The format is as follows: 01 [word x] [word y]. Note that the packet IDs of different patch versions in D2 have different meanings and cannot be used universally. A relatively complete in-game packet list in 1.10 can be found here: http://www.edgeofnowhere.cc/viewtopic.php? T = 303771

Packet 64 and 65 are related to hacks detection. The 64-bit packet length is 9 bytes in the format of 64 [DWORD address 1] [DWORD address 2]. The following two Dwords are the two memory addresses that the server wants to detect; packet 65 is 1 byte in length (No parameter). Check the four addresses most likely to be patched. After a simple obfuscation process (making sniffer capture and analysis difficult), the check result of packet 64/65 is sent back to the server. If the instruction or data in the detected address is changed, the detection results naturally do not match the original ones, so blizzard knows you are using hack. This detection method is the so-called memory probe, that is, the memory detection method. So how does blizzard know which addresses should be checked? The detour patch (bypass point) of hack is fixed. For example, the famous public release of hack such as maphack and d2jsp will certainly be used for research, so Blizzard will know where their patches are. Blizzard cannot know those who develop and entertain themselves, so it is relatively safe. However, if your patch points are the same as those of maphack and d2jsp, you may still be lucky to win the bid.

The following is a piece of code related to packet 64 detection. eax and ECx are two memory addresses to be detected. The detection results are saved to the local variables var_result1 and var_result2 and then sent back to the server:

Code
. Text: xxxxf362 $ check_result1:; Code xref: checkdetectionresult + 87j
. Text: xxxxf1_cmp eax, ESI; not zero
. Text: xxxxf364 JZ short $ clear_result1; jump if zero (ZF = 1)
. Text: xxxxf366 mov [EBP + arg1], ESI
. Text: xxxxf369 mov eax, [eax]
. Text: xxxxf36b mov [EBP + var_result1], eax
. Text: xxxxf36e mov [EBP + arg1],-1
. Text: xxxxf375 JMP short $ check_result2; jump

. Text: xxxxf39b $ check_result2:; Code xref: checkdetectionresult + a5j
. Text: xxxxf39b; checkdetectionresult + c4j
. Text: xxxxf39b CMP ECx, ESI; compare two operands
. Text: xxxxf39d JZ short $ clear_result2; jump if zero (ZF = 1)
. Text: xxxxf39f mov [EBP + arg1], 1
. Text: xxxxf3a6 mov ECx, [ECx]
. Text: xxxxf3a8 mov [EBP + var_result2], ECx
. Text: xxxxf3ab mov [EBP + arg1],-1
. Text: xxxxf3b2 JMP short $ send_detect_result; jump

The packet 65 Detection code is similar to packet 64, except that it detects several fixed addresses.

The memory probe mechanism of packet 64/65, combined with the existing version-checking.dll and extrawork. dll introduced in the previous article, constitutes the hacks detection mechanism used by blizzard in Diablo II 1.10 patch.

Shows some of the bypass points used in d2jsp 1.2.0 (d2jsp 1.2.0 is used for Diablo II 1.11b, but the meaning is the same ).

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.