已经使用loadpe的插件dump出文件,目前正在修复IAT表。按照fly等各位老大的帖子,成功找到了magic jmp。如下代码:
00B446EE 50 push eax
00B446EF FF15 0421B600 call dword ptr ds:[B62104] ; kernel32.GetModuleHandleA
00B446F5 8B0D 4CF5B600 mov ecx,dword ptr ds:[B6F54C] /*返回代码处*/
00B446FB 89040E mov dword ptr ds:[esi+ecx],eax
00B446FE A1 4CF5B600 mov eax,dword ptr ds:[B6F54C]
00B44703 391C06 cmp dword ptr ds:[esi+eax],ebx
00B44706 75 16 jnz short 00B4471E
00B44708 8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
00B4470E 50 push eax
00B4470F FF15 0C21B600 call dword ptr ds:[B6210C] ; kernel32.LoadLibraryA
00B44715 8B0D 4CF5B600 mov ecx,dword ptr ds:[B6F54C]
00B4471B 89040E mov dword ptr ds:[esi+ecx],eax
00B4471E A1 4CF5B600 mov eax,dword ptr ds:[B6F54C]
00B44723 391C06 cmp dword ptr ds:[esi+eax],ebx
00B44726 E9 30010000 jmp 00B4485B /*这里是magic jmp */
00B4472B 90 nop
00B4472C 33C9 xor ecx,ecx
00B4472E 8B07 mov eax,dword ptr ds:[edi]
00B44730 3918 cmp dword ptr ds:[eax],ebx
00B44732 74 06 je short 00B4473A
00B44734 41 inc ecx
00B44735 83C0 0C add eax,0C
但我有一点不明白的是:如何找到RVA的地址及大小?
是在:
00B4470F FF15 0C21B600 call dword ptr ds:[B6210C] ; kernel32.LoadLibraryA
中数据窗口中跟随至b6210c 吗? 试着做过,但填如找到的数值后,在importREC中提示“不能载入当前进程相关数据信息!" ,估计肯定是找错了。
请高手指点一二,稍稍提示一下。谢谢。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!