您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页pediy DLL 脱壳

pediy DLL 脱壳

来源:意榕旅游网
1 确定基地址,按查看

基地址003c0000 2 寻找OEP

有个个人的小技巧,就是.text 在3c1000,那么就每次都跳过一些函数段,直到运行到3c1***附近,如图:

每次到了一个新的函数里面,如果不再.text附近,直接找retn,F4运行到这里,就可以进入下一个函数。

按照这个方法,很快就到了3C1240,这里就是函数入口了,强制分析一下就可以看到代码

OEP: 003C1240 3 DUMP

上面找到的这里可以dump,但是对于DLL,重定位处理代码的位置很重要,所以还是需要找到重定位代码出,同时顺便跳过重定位代码,所以就先不dump了,重新启动程序。 这个代码的定位似乎没有什么技巧,感觉和壳有关,看雪上有人回复说这是靠经验,一般是匹配特征码的,所以我也不纠结这里了。 直接跟踪来到这里

本来是不跳的,可以双击z寄存器,让他跳

双击后(判断寄存器就变了)

重新来到OEP,这时候就可以DUMP了 用LoadPE,由于是DLL,不要使用这个不是磁盘上的默认值00400000H了。

,因为加载的基地址

选中相关进程,修复一下基地址,这个是习惯,因为挺多壳喜欢改这里 然后把edrlib.dll dump下来 4 IAT修复

自己手工找一下IAT的地址,建议学会手工,因为其实也不难,ImportRec经常搞不定这个,在OEP入口一下任何地方找类似一下的语句

看到 0x3C702C了吧,然后在里面输入

然后在数据窗口就可以看到这些函数来,上下翻动,就可以知道RVA和SIZE啦

在ImportRec里面

003C7000 77EFEF1C GDI32.GetTextExtentPoint32A 003C70E0 7C809C98 kernel32.MultiByteToWideChar

重定位表在.reloc区块里面做好两件事

记住这里不要选。

然后修复输入表就行了。

5 重定位表

这是最麻烦的地方,很难讲清楚通用规则,我个人感觉和壳有关,但是还是直接找到重定位的处理代码,然后按照《加密与解密》的方法打补丁 Pushad

Mov edx,dword ptr[XX] Sub ebx,YY

Mov dword ptr [edx],ebx Add edx,4

Mov dword ptr[XX],edx Popad Or al,al

Jmp short ZZZZZ

XX:填写申请的内存空间的地址 YY:填写DLL载入的基地址 ZZZZZ:

这里不详细,看不多《加密与解密》可以参考本文档的截图,本文档不具备所有细节。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务