这课是手把手教大家脱壳破解的教程
我就用这个软件来示范演示吧
一: 脱壳部分1.侦壳:用PEiD查壳Armadillo 3.00a - 3.61 -> Silicon Realms Toolworks
再用FI 4.01a 查一下 显示为: Armadillo v3.05 big {glue}
2 判断进程:
启动程序。然后在 Windows 任务管理器或LordPE里查看是单进程的Armadillo还是双进程的。这个程序是单进程的,我们可以省略分离父子进程的过程。
用OD载下,然后用IsDebug 1.4插件去掉Ollydbg的调试器标志.设置Ollydbg忽略所有异常
忽略所有异常选项,但运行程序有异常.在忽略异常范围内添加以下异常:
**************************************
C000001E (INVALID LOCK SEQUENCE)
**************************************
下硬件执行断点: he GetModuleHandleA+5 然后shift+F9运行 //硬件断点和+5 都是为了防止壳检测我们是否下过断点.
-----------------------------------------------------------------------------------在脱穿山甲的时候,经常会用到这个断点,通过这个断点,我们可以很快的找到Magic Jump
这也是高手们能过单步跟踪,总结出的经验. 还有一点要说明一下.我这里用的操作系统是Windows XP SP2 的.如果您使用的操作系统是2000 的话,下这个断点是断不下来.,老师是这样给我们说的.具体是不是这样,我也没测试.
断下来后.我们可以先删除断点,再直接 Alt+F9 返回了. 因为这个程序的壳的版本比较老, 所以可以这样直接返回了.
找到 Magic Jump 把JE 改为 JMP . (这里有两个JE 我们应该选哪个呢? 跳转最大的那个就是我们要找的Magic Jump). 然后,在 Magic Jump 处 用跟随命令(可以直接在此行按Enter)来到跳转处.向下看,找到那个JMP. 在此处F2 下断,然后Shift+F9 运行到此处,再取消断点.
接下来. 回到 Magic Jump ,把刚才的修改撤消. 然后Alt+M打开内存映射窗口.
在 00401000 处单击鼠标右键,设置内存访问断点,Shift+F9运行. 稍等片刻,直接到达OEP.
修复IAT
现在可以用 LordPE DUMP了。先修正一下镜像,完整转存后用 ImportREC v1.6F 修复IAT,OEP处填34A94自动搜索IAT 获取输入表 显示无效函数 发现有11个无效的指针,一般, Armadillo 的壳在修复的时候,如果发现无效指针小于20,我们可以直接Cut 掉这些无效的指针. 最后修复抓取文件.
现在我们可以给文件做个减肥。用 LordPE 打开脱壳后的文件。
∨ 展开