常用手动脱壳方法
2011-11-06 16:00
232 查看
常用手动脱壳方法
脱壳
脱壳
方法一:单步跟踪法 1.用OD载入,点“不分析代码!” 2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现!(通过F4) 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选) 4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现! 5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP 6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入 7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。 Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。一般情况下可以轻松到达OEP! 方法二:ESP定律法 ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!) 1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) 2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车! 3.选中下断的地址,断点--->硬件访--->WORD断点。 4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。 方法三:内存镜像法 1:用OD打开软件! 2:点击选项——调试选项——异常,把里面的√全部勾上!CTRL+F2重载下程序! 3:按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE(也就是00401000处),按F2下断点!然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP! 方法四:一步到达OEP 1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运行到此处 2.来到大跳转处,点下F8,到达OEP! 方法五:最后一次异常法 1:用OD打开软件 2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序 3:一开始程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数m! 4:CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次) 5:在OD的右下角我们看见有一个"SE 句柄",这时我们按CTRL+G,输入SE 句柄前的地址! 6:按F2下断点!然后按SHIFT+F9来到断点处! 7:去掉断点,按F8慢慢向下走! 8:到达程序的OEP! 方法六:模拟跟踪法 1:先试运行,跟踪一下程序,看有没有SEH暗桩之类 2:ALT+M打开内存镜像,找到(包含=SFX,imports,relocations) 内存镜像,项目 30 地址=0054B000 大小=00002000 (8192.) Owner=check 00400000 区段=.aspack 包含=SFX,imports,relocations 类型=Imag 01001002 访问=R 初始访问=RWE 3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪ing。。 Btw:大家在使用这个方法的时候,要理解他是要在怎么样的情况下才可以使用 方法七:“SFX”法 1:设置OD,忽略所有异常,也就是说异常选项卡里面都打上勾 2:切换到SFX选项卡,选择“字节模式跟踪实际入口(速度非常慢)”,确定。 3:重载程序(如果跳出是否“压缩代码?”选择“否”,OD直接到达OEP) Btw:这种方法不要滥用得好,锻炼能力为妙。 |
相关文章推荐
- 手动控制IIS Express的两个常用方法
- CSDN上常用的markdown编辑器的常用方法(自己该手动写的部分【左边】)
- (3)常用脱壳方法总结
- 破解入门(三)-----脱壳的常用方法
- 脱壳的常用方法
- 关于几种常用的脱壳方法总结
- 破解入门(三)-----脱壳的常用方法
- 汇总c#.net常用函数和方法集
- Java 字符串 (常用方法)
- Python基础学习-列表的常用方法
- ASP.NET中常用的26个优化性能方法
- java基础知识1--String常用方法总结
- 常用JAVA方法大全
- 黑客兵法 攻破网络的十二种常用方法
- java中Map集合的常用遍历方法及HashMap的应用实例
- Python数据分析几个比较常用的方法
- C#中常用的文件操作方法
- c#中两种常用的异步调用方法
- DB2中多种常用功能的解决方法
- Ajax常用的几个函数及Alexa查询的几个查询接口及使用方法