chuiyan121 发表于 2022-1-25 22:03

The023. 初探脱壳,ACProtect壳[Stolen Code]


The023. 初探脱壳,ACProtect壳
关于脱壳的记录,已有大牛教科书式帖文了,我就按照自己的习惯记录下来,如有疑问欢迎交流指正。^_^

1、PEiD查壳,UltraProtect 1.x -> RISCO Software Inc.(UltraProtect这个名称是ACProtect的前身)
https://s4.ax1x.com/2022/01/25/7bYfcF.png

2、OD载入,设置异常选项卡如下图。
https://s4.ax1x.com/2022/01/25/7bYct0.png

最后一次异常法,2次跑飞,重载Shift+F9一次,堆栈窗口SE句柄处数据窗口跟随,数据窗口下内存访问断点。
https://s4.ax1x.com/2022/01/25/7bYghV.png

Shift+F9运行,F2断点,再Shift+F9运行,再F2,再Shift+F9运行到如下地址,删除内存访问断点和两个F2断点。
https://s4.ax1x.com/2022/01/25/7bYs7n.png

运行到retn处,Alt+M打开内存映射窗口,在00401000处下F2断点。
https://s4.ax1x.com/2022/01/25/7bYr0s.png

Shift+F9运行,直接跳转到假OEP,发现入口代码有缺损。
https://s4.ax1x.com/2022/01/25/7bYRpT.png

重载OD后运行到上面retn处,Ctrl+T设置条件,push ebp是入口的第一行代码。
https://s4.ax1x.com/2022/01/25/7bYW1U.png

Ctrl+F11跟踪步入,一段时间后程序自动跟踪到偷窃的代码处。发现3行被偷窃代码,二进制复制到剪切板。
复制的二进制代码为:55 8B EC 83 EC 44,一共6个字节。
https://s4.ax1x.com/2022/01/25/7bYhX4.png

Alt+M打开内存窗口,在00401000处下F2断点,Shift+F9运行,到了假OEP,向上翻,需要填充6个字节。
https://s4.ax1x.com/2022/01/25/7bY5nJ.png

选择6个字节,粘贴复制的二进制内容。
https://s4.ax1x.com/2022/01/25/7bYIB9.png

在004010CC处设置新的EIP,此时偷窃的代码已补充完毕。
https://s4.ax1x.com/2022/01/25/7bYo7R.png

3、LordPE修正镜像大小,完整转存,ImportREC修复(打开原带壳程序用插件修复)。
https://s4.ax1x.com/2022/01/25/7bY7A1.png

查询无壳,程序正常运行。
https://s4.ax1x.com/2022/01/25/7bYHtx.png



MisS 发表于 2022-1-25 22:28

大佬工具发一下呗,新人想练练手
页: [1]
查看完整版本: The023. 初探脱壳,ACProtect壳[Stolen Code]