游戏安全实验室 首页 游戏漏洞 查看内容

【游戏分析】《灵山奇缘》递归遍历之上的6种根节点

发布于:2018-9-6 17:18   |    173427次阅读 作者: 外部投稿    |   原作者: 通化程序员

CE扫描人物加密坐标(之前文章我们已经找到该地址)。

然后到OD中下断进行跟踪。

 

断到的代码  表达式esi+64

 

继续追来源 表达式变成[edi+44]+64

 

 

此时我们下断发现ECX是不断变化的,说明不止我们人物一个对象,应该周围所有对象都经过这里

那么说明我们追上去 应该是一个结构

 

 

 

继续返回追寄存器

 

但是再返回的时候我们发现了问题

发现我们是在同一个函数中不断的返回,代码一直不变,OD出问题了?

答案当然不是的,是我们进入了递归函数。

递归函数就是自己调用自己,那么当我们按CTRL+F9的时候当然会不断的返回自己了。

 

 

每一个递归我们可以理解成一个while循环

两个位置递归可以理解成二叉树,

回忆一下,你自己遍历二叉树的时候,是不是自己写了一个递归函数,然后里面分两种递归呢?

 

当然递归也总有一个头部,就是第一次调用递归函数的位置,一直CTLR+F9是可以返回的。

返回以后就是结构的根了。

 

 

顺利返回到第一次调用递归函数的位置

 

 

 

 

通过分析

我们发现调用递归函数的根有六种可能

已知其中一支是周围遍历(通过坐标追踪而得)、

其他五支部不知道具体遍历内容,可以后续分析测试。



来源:通化程序员—投稿

GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞0

收藏

上一篇:【游戏分析】RTS类游戏通用修改方法

下一篇:【游戏分析】《天涯明月刀》附加属性库分析

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部