手动脱UPX的DLL 这里我只是整理一下文档,方便大家学习,学习资料是黑鹰破解教程,我把里面的一些我觉得有必要整理的东西,拿出来整理一下,大神请不要喷!下面来进行分析: 主要程序是: 主要分析的是这里面的DLL文件,也就是XY2Function.dll这个文件,下面来用PEID载入看一下,看一下壳: 将XY2Function.dll载入到OD中,这里OD分析dll需要有另外一个进程来加载loaddll.exe程序; 接下来就单步走,这里有一个技巧我们可以直接搜下面这个指令: Xchg ah,al Rol eax,10 Xchg ah,al Add eax,esi 既然这样我们就开始CTRL+B查找第一段代码: 点击查找按钮,CTRL+L进行下一个查找直到查到这段代码为止: 找到了这段代码之后接下来就是再mov al,byte ptr ds:[edi]处下断电,F9运行到这里,然后记录下edi的值,这个edi存放就是DLL重定位地址,edi-基址=RVA重定位; 这里面edi的地址是edi=1009F418,我们查看内存看一下基址是多少, 基址为10000000所以这个重定位的RVA就是9F418 接下来就是单步走到程序的OEP,单步走的原则就是远Call F8,近Call F7;这样我们就到达了OEP用loadpe进行dump程序; 接下来就是Dump程序,这里就不截图了,主要是后面修复关键地方,将修复完成之后的程序载入到LOADPE中,进行重定位的修复 点击目录进入到修改目录中: 注意这里修复完成后点击保存->确定,之后出来还要点击保存->确定这样才算成功。后面就是用importREC进行修复。修复之后就可以运行了 程序我就不附加了,自己找一个UPX的DLL练手就好!!! 希望多多加分鼓励!!!!拿走虽易,分享不易,且行且珍惜!
|