0
点赞
收藏
分享

微信扫一扫

【复现】jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM

zidea 04-06 23:30 阅读 2

在我们逆向动态调试的过程中最常用的两款工具OD和CE。

两者相辅相成,各有优缺点,彼此互补。

如果说谁强大,并没有,不同的情况,应用不同的工具才算是最明智的选择。

首先,二者在检测和过驱动上,OD更为困难一些,所以有的逆向人员只用CE,也是有一定原因的,而并不是他不习惯用OD。

CE的主要功能是搜索内存,在这个方面,OD是无法替代的,尤其是那种模糊的数值,我们只有用扫描的办法才能找到突破口。

OD的主要功能是动态代码分析。

OD和CE结合找数据情况一,CE找突破口,锁定目标内存地址,在CE中查看其访问代码,然后到od中追踪其来源,这是最常见的情况,优点在于可以查找到所有的访问代码(前提是下断以后要尽量的做和地址数据相关的动作,比如人物血量,你就要考虑到扣血,加血,吃药,被怪物攻击,换装备等等一系列的可能导致人物血地址被访问的动作,这样才能得到更全面的访问代码),不会漏掉任何的线索,然后逐条到OD找来源,一旦某几条找不到来源,还有更多代码可以使用。缺点是,有的游戏对内存断点有一定的检测,这样的访问会导致多次崩溃以及这样比较耗时。

OD和CE结合找数据情况二,CE找突破口,锁定目标内存地址,到OD中对该地址进行下断处理,直接用OD断到访问代码。然后顺着访问代码找到其来源。这样做的优点在于,有一些地址的访问代码比较频繁,不拿OD直接断是断不到的,例如,我们在找字符串数据的时候,往往断到的代码都是非游戏领空代码,这个时候如果是CE中拿到的代码,然后到OD中去断,下断立刻会断,因为很多游戏里的字符串都会访问该处,断到的也不是我们想要的数据或则调用,有的同学会说,那么我们用条件断呢?是不可以的,因为这种地方访问频繁,条件断会导致游戏直接卡死,那么这个时候这个方法就成了必然了,我们在OD中直接对数据下断而不是代码,然后继续返回找来源即可。当然缺点也很明显,容易漏掉很多访问代码,毕竟od中下断,每次只能断到一条代码不是吗?

OD和CE结合找数据情况三,OD遇见复杂循环,VM,非游戏领空,线程等不好追踪的时候,借助CE过度,这也是比较常见的情况,OD追数据不是那么一帆风顺的,否则CE找到地址,OD直接找来源就可以了,哪来那么多的复杂数据呢?往往所谓的复杂,其实大多是因为遇见复杂循环,VM,非游戏领空,线程等,或则是思路不对。那么遇见这些情况,几乎绝望,OD无法继续下去的时候,不妨用CE扫描下你想找的目标值,或则会给你提供出来更多的追踪代码,如果运气好,还有可能直接获得偏移来到下一级的查找,也不是没有可能哦。总之,遇见困难的时候,不妨一试。

在OD和CE都运用熟练,逆向功夫足够的情况下,OD和CE能够完美的结合运用,将让你的逆向过程事半功倍。

举报

相关推荐

0 条评论