来自于西普实验吧在线实验
单步跟踪法破解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脱壳程序进行保存