【文章标题】: ASProtect 2.1x SKE dll文件脱壳+重定位表修复+文件优化
【作 者】: machenglin
【软件名称】: TestDog.dll
【大 小】: 306K
【加壳方式】: ASProtect 2.1x SKE->Alexey Solodovnikov
【编写语言】: Borland Delphi
【工 具】: WinXP、OllyDbg、PEiD、LordPE、RecImport、Dll_LoadEx、ReloX。
【操作平台】: WinXP sp2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
很多的大侠已经做过N多的ASProtect 2.1x SKE->Alexey Solodovnikov的exe软件的教程,有关ASProtect 2.1x SKE->Alexey
Solodovnikov的dll教程不是很多。通过对dll脱壳的学习练习,参考了很多的大侠的教程,菜鸟就将dll脱壳的笔记发出来,希望
高手能指正错误,给初学者提供一些思路。
用 PEid 0.94 显示为 ASProtect 2.1x SKE -> Alexey Solodovnikov
用flyDBG载入,ALT+O, 设置内存访问异常,以及下面“同时忽略以下指定的异常或者异常范围”,其余选项全部忽略。
008D2001 > 60 pushad ; OD入口
008D2002 E8 03000000 call TestDogj.008D200A
008D2007 - E9 EB045D45 jmp 45EA24F7
008D200C 55 push ebp
008D200D C3 retn
008D200E E8 01000000 call TestDogj.008D2014
---------------------------------------------------------------------------------------------------------------
一、找到OEP
Shift+F9,一直到第二次出现855CCAEF。
Alt+M,在该dll的code段,F2下断。
Shift+F9,来到OEP了。
008BFF4C 55 push ebp
008BFF4D 8BEC mov ebp,esp
008BFF4F 83C4 B4 add esp,-4C
008BFF52 B8 E4FD8B00 mov eax,TestDogj.008BFDE4
008BFF57 E8 E064FBFF call TestDogj.0087643C
008BFF5C E8 EF38FBFF call TestDogj.00873850
008BFF61 8D40 00 lea eax,dword ptr ds:[eax]
008BFF64 0000 add byte ptr ds:[eax],al
---------------------------------------------------------------------------------------------------------------
二、发现IAT、call xxxxxxxx。
Ctrl+B:FF 25。
008711D8 - FF25 A8318C00 jmp dword ptr ds:[8C31A8] ; kernel32.CloseHandle
008711DE 8BC0 mov eax,eax
008711E0 - FF25 A4318C00 jmp dword ptr ds:[8C31A4] ; kernel32.CreateFileA
008711E6 8BC0 mov eax,eax
008711E8 E8 13EE2D00 call 00B50000 ; call xxxxxxxx①
008711ED 7B 8B jpo short TestDog1.0087117A
008711EF C0E8 0B shr al,0B
008711F2 EE out dx,al
008711F3 2D 00D48BC0 sub eax,C08BD400 ; call xxxxxxxx①
008711F8 E8 03EE2D00 call 00B50000
右键--->数据窗口跟随--->内存地址。
在数据窗口右键--->长型--->地址。