黑客编程:RM转换精灵V 7.1主程序脱壳
作者:bing 来源:赛迪论坛 添加时间:2006-5-26 13:19:22然后 00518460 处下硬件执行断点,F9运行。停在00518460
00518460 . 55 PUSH EBP
00518461 . 8BEC MOV EBP, ESP
00518463 . 83C4 F0 ADD ESP, -10
00518466 . 53 PUSH EBX
00518467 . B8 C07E5100 MOV EAX, RMtoVCD.00517EC0
0051846C . E8 27E5EEFF CALL RMtoVCD.00406998
00518471 . 8B1D 1CE85100 MOV EBX, DWORD PTR DS:[51E81C] ; RMtoVCD.0051FBF4
00518477 . 8B03 MOV EAX, DWORD PTR DS:[EBX]
00518479 . E8 26F0F5FF CALL RMtoVCD.004774A4
0051847E . A1 A0EA5100 MOV EAX, DWORD PTR DS:[51EAA0]
00518483 . 8B00 MOV EAX, DWORD PTR DS:[EAX]
00518485 . 8B48 6C MOV ECX, DWORD PTR DS:[EAX+6C]
00518488 . B2 01 MOV DL, 1
0051848A . A1 E0685100 MOV EAX, DWORD PTR DS:[5168E0]
以上看来是真的OEP了 是Borland Delphi 6.0 - 7.0编译的。
接着就用flyODBG自带的Ollydump插件 dump 出来保存。
本来这就以为收工的了,可是想用ImportREC 修复IAT 时才发现IAT加密了
以上做的基本无用功。各位不要见笑说我这写些,我只是想把过程写的详细写。
既然加了密,当然就要修复哦,就让我们来跟踪他的IAT表藏那去了。
00518460 . 55 PUSH EBP
00518461 . 8BEC MOV EBP, ESP
00518463 . 83C4 F0 ADD ESP, -10
00518466 . 53 PUSH EBX
00518467 . B8 C07E5100 MOV EAX, RMtoVCD.00517EC0
0051846C . E8 27E5EEFF CALL RMtoVCD.00406998 ///这跟进
00518471 . 8B1D 1CE85100 MOV EBX, DWORD PTR DS:[51E81C] ; RMtoVCD.0051FBF4
00518477 . 8B03 MOV EAX, DWORD PTR DS:[EBX]
00518479 . E8 26F0F5FF CALL RMtoVCD.004774A4
就到了这里:
00406998 /$Content$nbsp; 53 PUSH EBX
00406999 |. 8BD8 MOV EBX, EAX
0040699B |. 33C0 XOR EAX, EAX
0040699D |. A3 C0905100 MOV DWORD PTR DS:[5190C0], EAX
004069A2 |. 6A 00 PUSH 0
004069A4 |. E8 2BFFFFFF CALL RMtoVCD.004068D4 //一般的Borland Delphi 6.0 - 7.0的程序在这都是 kernel32.GetModuleHandleA这个函数 明显加了密 再跟进去
004069A9 |. A3 68F65100 MOV DWORD PTR DS:[51F668], EAX
004069AE |. A1 68F65100 MOV EAX, DWORD PTR DS:[51F668]