本帖最后由 Martin 于 2014-10-30 09:31 编辑
手脱Aspack壳的DLL 相信大家都脱过Aspack的DLL,这里呢我只是总结一下脱Aspack的方法,望大牛们勿喷,首先先看一下整体的应用程序。 上图中的CQHX.DLL是Aspack的壳,而WGSHELL.DLL是UPX的壳,用上一次那个脚本可以到达OEP,下面来查一下CAHX.DLL的壳(如下图所示)
1
这里说一个简单地方法就可以找到重定位地址的方法,我们可以CTRL+F搜下面这段代码来进行查找: [Asm] 纯文本查看 复制代码 sub ecx,8
shr ecx,1
那么就可以找到这里位置处:
2
图中我们看到了搜的这段代码上面有两个跳转je,最上面的那个je就是magic jmp所以不能让他跳转过去,而mov esi,dword ptr ds:[ebp+539]这个位置处就是存放DLL的地址处,接下来不在magic jmp处下断点,要在magic jmp上面这个跳转处下断点F2,然后点击运行:
3
然后单步走运行到mov esi,dword ptr ds:[ebp+539]这段代码处看一下重定位的地址为多少!
4
这样就获取到了重定位的地址了,然后我们就单步运行,单步走的原则是远跳转F8,近跳转F7,其实我们往下拉就可以看到结尾了到这里之后。
5
这里就是OEP了,通过上面图片它会在100773C0处返回到OEP:
6
接下来的任务就是修改重定位地址和入口地址之后再输入表的重建,这里只是纪录一个快速找到DLL重定位地址的方法。既然我们已经找到了DLL的OEP之后,我们就开始dump文件。
7
将OD(LoadDll.Eex)中的DLL程序Dump完了之后,就可以对dump后的文件进行修复了,下面我们将dump后的文件载入到LoadPE中。点击PE编辑器选择我们要修复的文件。
8
首先要修复的是下面是原来没有进行修复的程序的入口点这里面现实的是77001,但是通过上面图片上显示的是OEP地址是4CF20这个地址,那么就需要将这个我入口点改为4CF20后点击保存,注意要点击保存按钮。
9
然后再点击目录对重定位地址进行修改,将这个原来重定位地址为77F54改为70000(上面我们找到的重定位地址):
10
修改重定位地址为70000后点击保存,再点击确认,到了上一级界面是又要点击保存再点击确认。这样程序就可以了,然后再对输入表进行修复。打开ImportREC选取LoadDll.exe这个进程进行选择Dll,然后将OEP改为程序的OEP之后,再将无效的剪掉,载入到 脱壳后的程序就可以运行了。
11
本来想放在百度网盘上的,可惜百度查的比较严一直分享失效!只能委屈各位花1CB了!!
多多加些热心值吧!各位大神们
|