破解入门(六)-----实战“内存镜像法”脱壳

内存镜像法的步骤

1)用OD打开软件

2)点击选项——调试选项——异常,把里面的忽略全部√上。CTRL+F2重载下程序

3)按ALT+M,打开内存镜象,找到程序的第一个.rsrc.F2下断点,然后按SHIFT+F9 行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的代码段.text(或者CODE)(也就是00401000处),按F2下断点。然后按SHIFT+F9(或者是在没异常情况下按F9), 直接到达程序OEP

 

实战

查壳

PEID查壳的结果如下图,可以看出程序加了ASPack2.12的壳

破解入门(六)-----实战“内存镜像法”脱壳_第1张图片

 

寻找OEP

(1)用OD载入该程序

破解入门(六)-----实战“内存镜像法”脱壳_第2张图片

 

(2)依次选择OD选项(T)下的调试设置(D)子选择,弹出如下对话框,切到异常选项卡,将忽略下的子项全部勾上

破解入门(六)-----实战“内存镜像法”脱壳_第3张图片

 

(3)Ctrl + F2重新载入要脱壳的程序,Alt + M打开内存镜像,找到程序的第一个.rsrc.  F2下断点,按下F9运行程序

破解入门(六)-----实战“内存镜像法”脱壳_第4张图片

 

(3)再按ALT+M,打开内存镜象,找到程序的第一个代码段.rsrc.上面的.text,按F2下断点,  按下F9运行程序

破解入门(六)-----实战“内存镜像法”脱壳_第5张图片

 

(3)直接到达OEP

破解入门(六)-----实战“内存镜像法”脱壳_第6张图片

注:有时候在给软件脱壳,千心万苦找到了OEP,却发现不是常见的“push ebp”,而是出 现如下图这种情况,其实这是OD将这段代码当做数据了没有进行反汇编识别,解决方 法是,选中一行右键选择“分析”菜单,选择“分析”下的“分析代码”,OEP就会出 现在眼前了

 

3 脱壳

可以使用OD自带插件,也可以用LordPE,方法和前面"单步跟踪法"中使用方法一样

 

修复

可以使用ImportFix,方法和前面"单步跟踪法"中使用方法一样

 

 

 

你可能感兴趣的:(汇编,破解)