做软件的脱壳时,怎么设置断点?使跳转失效,哪位总结一下。

来源:百度知道 编辑:UC知道 时间:2024/06/18 14:32:50
我看了一个教程,使用od进行编辑,单步追踪脱壳。每遇到红线的跳转,就在跳转语句的下一句增加断点,如果跳转到mov,call,或者跳转语句的下一句是nop,跳转语句——就不可以增加断点。要在再下一句语句加断点,以此类推。

但是在教程中还有一些其他的情况,也是红线(跳转实现)作者却没有增加断点。并没有对这些情况做出解释,搞得我实际操作时很晕。

哪位总结一下脱壳(单步追踪法)时到底什么情况要增加断点,哪些情况要特殊考虑呢?谢谢!

单步跟踪法
1.用OD载入,点"不分析代码!"
2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现!(通过F4)
3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点-->运行到所选)
4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!
5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP
6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入
7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。

每遇到红线的跳转,就在跳转语句的下一句增加断点
这里应该是说在下面设置断点吧~
不明白没有关系多看慢慢理解

跳下面如果是nop可以在下一句F4
因为nop是无效句
所以在nop里面F4没有意义

跳分向上或者向下
向上的跳才在下面F4跳过
向下就不用咯~
因为程序是从上向下执行的~
如果他向上跳最执行下来
不设置断点跳过他
你猴年马月都到不了OEP