发布于:2018-9-6 17:18 | 173427次阅读 作者: 外部投稿 | 原作者: 通化程序员
用CE扫描人物加密坐标(之前文章我们已经找到该地址)。 然后到OD中下断进行跟踪。
断到的代码 表达式esi+64
继续追来源 表达式变成[edi+44]+64
此时我们下断发现ECX是不断变化的,说明不止我们人物一个对象,应该周围所有对象都经过这里 那么说明我们追上去 应该是一个结构
继续返回追寄存器
但是再返回的时候我们发现了问题 发现我们是在同一个函数中不断的返回,代码一直不变,OD出问题了? 答案当然不是的,是我们进入了递归函数。 递归函数就是自己调用自己,那么当我们按CTRL+F9的时候当然会不断的返回自己了。
每一个递归我们可以理解成一个while循环 两个位置递归可以理解成二叉树, 回忆一下,你自己遍历二叉树的时候,是不是自己写了一个递归函数,然后里面分两种递归呢?
当然递归也总有一个头部,就是第一次调用递归函数的位置,一直CTLR+F9是可以返回的。 返回以后就是结构的根了。
顺利返回到第一次调用递归函数的位置
通过分析 我们发现调用递归函数的根有六种可能 已知其中一支是周围遍历(通过坐标追踪而得)、 其他五支部不知道具体遍历内容,可以后续分析测试。 来源:通化程序员—投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) |
最新评论
发表评论