[Game Reverse] BUFF and skill prediction of "Moon Moon Knife"

In order to improve the playability of the game and increase the difficulty of making cheats, many games are designed to deal extremely high damage to boss skills. In order to achieve the effect of timely dodging, we need to predict the skills. There are many ways to predict. For example, by receiving packets, this method is the fastest to judge, but the code is more complicated to write, and HOOK is often detected when receiving packets, resulting in account bans or crashes. Another way is to traverse when releasing skills. Many games will add the state of skill release and store the character's own boss together, such as "Tianya Mingyue Knife", "Dream of the Three Kingdoms" and so on. Next, let's take Tianya Mingyue Knife as an example to analyze the prediction of skills.

First of all, we search the name of the BUFF state to find the skill state library. It should be noted here that most of the Chinese characters in the game are encoded in UTF-8. The process is very simple, so we won't analyze it and give the formula directly.

[BUFF base address]+1144]+64 BUFF name traversal start address

[[BUFF base address]+1144]+68 BUFF name traverses the number of array members

[[BUFF base address]+1144]+5C BUFF name traversal number of objects

[[[[BUFF base address]+1144]+64]+n*4]+0 BUFFID

[[[[BUFF base address]+1144]+64]+n*4]+4 BUFF object

[[[[BUFF base address]+1144]+64]+n*4]+8 BUFF linked list

[[[[[BUFF base address]+1144]+54]+n*4]+4]+0 BUFFID

[[[[[[BUFF base address]+1144]+54]+n*4]+4]+4]+0 BUFF name

We get an array-set-linked-list structure, which is widely used in this game.

Next, let's analyze all the current BUFF and skill status of NPCs and characters. We continue to analyze the code of the previous BUFF library. The function of taking the state name passes in a parameter of the skill ID. When we access the BUFF on the character, we will break down (as shown) and analyze the skill upwards. We found that we have caught up with a structure
insert image description here
. Body array, and the current BUFF state of our character and the preparatory action when the skill is about to be released will be stored in this array, and each action corresponds to a different ID. Continue to analyze upwards, and found that this array is stored under the character object (as shown in the figure)
insert image description here
. Through the code output, we found that this array is also applicable to monsters and other players. The formula is as follows

[NPC or character object]+304 BUFF array start address

[NPC or character object]+308 BUFF array end address

[[NPC or character object]+304]+80*n+0 BUFFID skill prediction ID

There is an ID in this array, and there are a lot of unknown data, which are likely to be the range, target, orientation, shape and other information of the currently released skills, which need to be judged through a lot of comparison and analysis.

In this way, we have achieved a predictive effect on skills, and we can adopt different avoidance methods by traversing to different skill names of the BOSS.

Guess you like

Origin blog.csdn.net/douluo998/article/details/130477093