-
-
用Ollydbg手脱 SVK Protector V1.32 加壳的DLL
-
发表于:
2004-6-15 00:24
8488
-
用Ollydbg手脱 SVK Protector V1.32 加壳的DLL
【目标程序】:SVK Protector V1.32破解版加壳的某个dll。附件中含有输入表和UnPacked以供参考。
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试环境】:WinXP、Ollydbg1.10、LordPE、DLL_Loader、ImportREC
―――――――――――――――――――――――――――――――――
【脱壳过程】:
DLL脱壳系列已写了几篇了,虽然没有什么太有价值的东东,也算是留点资料吧。
前些日子有朋友提出看看SVK加壳的DLL,正好看雪论坛恢复,所以写了这篇贺之。
手里只有SVK Protector V1.32 Demo破解版,和注册版加壳的dll有些方面是不同的。
关于SVK的脱壳可以参看我以前发的《伪 SVK Protector 1.32 脱壳+修复――SVK Protector DEMO 1.32 主程序》和《浅谈SVKP 1.3X壳的输入表修复――注册表医生 V2.96 脱壳+破解》。
―――――――――――――――――――――――――――――――――
一、轻松寻找SVK 1.32破解版加壳程序的OEP
设置Ollydbg忽略所有的异常选项。老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。
003C1000 60 pushad//进入OD后停在这
003C1001 E8 00000000 call SVKTest.003C1006
003C1006 5D pop ebp
003C1007 81ED 06000000 sub ebp,6
003C100D EB 05 jmp short SVKTest.003C1014
0425137F 6285 0E0B0000 bound eax,qword ptr ss:[ebp+B0E]
//SVK Protector V1.32破解版的典型异常!
04251385 EB 02 jmp short 04251389
0426BC7A 0355 00 add edx,dword ptr ss:[ebp]; SVKTest.003B0000
//EDX=0000108C + 003B0000=003B108C ★ 这就是OEP值 :-)
0426BC7D E8 32000000 call 0426BCB4
0426BC82 C3 retn
003B108C EB 10 jmp short SVKTest.003B109E//OEP
003B108E 66:623A bound di,dword ptr ds:[edx]
003B1091 43 inc ebx
003B1092 2B2B sub ebp,dword ptr ds:[ebx]
003B1094 48 dec eax
003B1095 4F dec edi
003B1096 4F dec edi
003B1097 4B dec ebx
003B1098 90 nop
003B1099 E9 F8903B00 jmp 0076A196
003B109E A1 7F903B00 mov eax,dword ptr ds:[3B907F]
003B10A3 C1E0 02 shl eax,2
003B10A6 A3 83903B00 mov dword ptr ds:[3B9083],eax
003B10AB 8B4424 08 mov eax,dword ptr ss:[esp+8]
003B10AF A3 F1903B00 mov dword ptr ds:[3B90F1],eax
003B10B4 FF1485 E1903B00 call dword ptr ds:[eax*4+3B90E1]
003B8B68 FF25 5CD03B00 jmp dword ptr ds:[3BD05C]
003B8B6E FF25 60D03B00 jmp dword ptr ds:[3BD060]
…… ……
003B8C5E FF25 B4D13B00 jmp dword ptr ds:[3BD1B4]
003B8C64 FF25 B8D13B00 jmp dword ptr ds:[3BD1B8]
0000D10C kernel32.dll 00AC ExitProcess
//修复到这个函数时SVKTest.dll会自动退出,通过跟踪原加壳dll也可以判定这个是ExitProcess
0000D134 kernel32.dll 0168 GetModuleHandleA
0000D13C kernel32.dll 018A GetProcAddress
0000D150 kernel32.dll 01C8 GetVersion
0000D154 kernel32.dll 01C9 GetVersionExA
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)