2018/5/16 逆向脱壳的几个方法(单步跟踪,ESP定律,使用出口标志,SFX方法)

来自于西普实验吧在线实验

单步跟踪法破解Aspack

条件:一般是不是很复杂的程序

方法:通过载入程序,当程序弹出点击事件框的时候就重新od载入,因为当点击事件框出现的时候意味着程序已经进入了oep当中。

所以当不断进入call当中去寻找oep所在位置,中间遇到跳转使用f4进行标记汇编命令再运行就可以跳转。

找到之后进行运行,删除分析,使用od的脱壳调试进行有两种方法分别都采用一次。

得到两个文件都进行保存,一个就是脱了壳并可以进行,一个并不能进行运行。

使用ESP定律进行破壳

条件:当od载入程序的时候,右边的寄存器窗口当中只有ESP寄存器的颜色变成了红色

方法:1,右键ESP寄存器,数据窗口当中选择跟随。

           2,在数据窗口当中右键下一个word类型的硬件断点。

           3,F8继续运行程序,运行到出现乱码位置,右键删除分析。

           4,这里就是OEP位置了,右键使用Olly脱壳程序进行保存

原理:https://blog.csdn.net/qq1841370452/article/details/54845481

使用出口标志进行破壳

条件:popad比较少的情况下,特点:复杂

方法:1,od载入程序之后,ctrl+f,寻找popad指令。

           2,使用f4运行到popad指令所在位置,紧接着运行看是否能够跳转到乱码页(不能的话,重新载入程序,ctrl+L寻找下一个popad所在位置,运行看是否能够跳转到乱码页)

            3,删除分析,右键od脱壳程序进行保存

原理:使用od载入程序的时候通常加壳之后的程序都会有popad这个指令。这个指令是恢复加壳之前的环境,所以我们可以认为这个是进入oep代码的标志,我们指令当中进行寻找popad这个指令进行重复试验,直到我们找到了我们所需要的那个popad(能够跳转到乱码页)

使用SFX方法进行破壳

条件:使用于程序比较小

方法:od载入程序之后设置调试选项将所有异常都进行忽略。

                                           SFX设置字节方式跟踪真正入口处(非常慢)

        之后程序自动会加载到乱码页。     

        3,删除分析,右键od脱壳程序进行保存

猜你喜欢

转载自blog.csdn.net/shakeyin1998/article/details/80333485