脱aspack的壳

自己写了一个win32控制台小程序,用ASPACK2.12加壳,然后用LORDPE和IMPORTREC脱壳。

win32小程序的源码如下:

#include <iostream.h>
#include 
<windows.h>
void main()
{
    DWORD p;
    _asm
    {
        call l1
l1:
        pop eax
        mov p,eax
    }
    cout
<<hex<<p<<endl;
}

 

功能就是输出当前MAIN函数的地址,很简单,用AS加密。

这里是看雪上下的ASPACK

这里是原程序、dump的程序、修复后的程序

下面把做的过程说一下,很简单

1.用OD载入加壳过的程序,加载完以后是这样的

可以看到此时的ESP为12FFC4,用ESP定律,在12FFC0下一个读的硬件断点,然后F9运行,按两次F9,然后几次F8,就到了OEP了

2.DUMP内存镜像,使用的是LORDPE软件,打开LORDPE

在进程上点右键,然后完整转存,一般名字为dump.exe,保存好

3.修复IAT

打开IMPORTREC,填入OEP的偏移1CAF,点自动查找IAT,再点获取输入表,然后点修复转存文件,就OK了

路漫漫其修远兮啊~~~~还要继续加油

posted @ 2010-05-13 15:36  认真做人,认真做事  阅读(393)  评论(0编辑  收藏  举报