发布于:2018-5-29 10:53 | 103516次阅读 作者: 外部投稿 | 原作者: 通化程序员
如果我们去找人物血量偏移表达式 会直接找到周围数组遍历中 原因很简单,人物对象本身就是周围数组中的一个成员 那么我们怎么才能找到单独人物的数据呢?
只能在人物对象上下断 断到的代码段位置,直接在代码段下断,无论怎么下断,断到的都是人物对象 而并非乱变化的才是单独人物的偏移表达式 如果乱变化,就是说明又断在遍历中了 那么我们就要多尝试每个断下的位置 直接在人物对象上下断
断到的代码如下
发现几乎断到的所有的访问代码,都是在代码断下断,寄存器值不断发生变化的。 所以该代码是遍历的代码访问的。 不是说没有单独的访问代码,而是这些代码比较频繁,而单独访问的代码可能要在特定情况下访问,而且访问不太频繁,不是那么容易断到。
那么我们换一个思路 dd [0FB5FB4]+0*4 在数组结构中 318F5080是存放在数组结构中的 那么我们CE扫描 看是否有其他位置存放 318F5080 (即人物对象)如果有我们去追这个即可
发现直接有基地址存放 也就是游戏设计者为了人物对象用起来更方便 也是直接存放在全局变量中的
最后表达式为 人物血量 [00FAE7C8]++0BF*4+550 来源:通化程序员-公众号投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) |
最新评论
发表评论