通常在软件的破解过程中,会遇到代码经过混淆器混淆的程序,此类混淆器可以称之为壳,壳又可分为压缩壳(常见的有UPX、北斗、ASDPack、Npack、PECompact等)和保护壳(如强壳Safengine、VMprotect、winlicense、Themida等),压缩壳作用是把程序进行体积缩小化处理,保护壳主要作用是混淆或加密代码防止他人进行逆向程序、破解程序。我们可以通过一些侦壳程序进行识别,但有些壳会采用伪装技术来混淆侦壳程序。
下面还是使用原来的课件,本次我们使用二次断点法进行脱壳,二次断点法也可以叫内存镜像法,先来下载以下这个课件把。
DIE查壳工具:https://files.cnblogs.com/files/LyShark/DiE_0.64.zip
课件内容:https://files.cnblogs.com/files/LyShark/ASPack.zip
1.直接开搞,OD载入这个加壳后的程序,并打开选项-> 调试选项 -> 异常 -> 忽略所有异常。
2.接着按下ALT+ M 切换到以下模块,选择.rsrc资源列表。
3.在SFX,输入表的位置,下一个F2断点。然后按下Shift+F9,然后按下ALT+M,再次来到了这个位置。
4.选择401000,再次下一个F2断点,再次按下Shift+F9
5.到达程序OEP位置
6.直接脱壳,保存代码即可。