-
-
[求助]PEBundle脱壳后IAT修复出现无效指针,求指导
-
发表于:
2013-8-5 09:30
8726
-
[求助]PEBundle脱壳后IAT修复出现无效指针,求指导
软件名称:ATmanavr
版本:6.05
壳:PEBundle 2.0b5 - 3.0x -> Jeremy Collake
无Overlay
OD载入后查找了Magic JMP
005F5FE1 50 push eax ; ntdll.RtlInitializeCriticalSection
005F5FE2 51 push ecx
005F5FE3 E8 97FBFFFF call AtmanAvr.005F5B7F
005F5FE8 85C0 test eax,eax
005F5FEA 74 02 je short AtmanAvr.005F5FEE
修改成JMP后ESP定律查找到OEP
//OEP
005180F4 /. 55 push ebp
005180F5 |. 8BEC mov ebp,esp
005180F7 |. 6A FF push -1
005180F9 |. 68 00295900 push AtmanAvr.00592900
005180FE |. 68 92805100 push AtmanAvr.00518092 ; jmp to msvcrt._except_handler3; SE 句柄安装
然后使用Dump使用ImpREC 1.7c进行修复,仍然有一个无效指针,如下图
RVA为005756A8,内容为00401220并且这个地址内的内容在程序加载后一直到运行后都没有出现变化。调试跟踪应该是MFC42.#4274_CWinApp::messageMap(个人水平有限,不知道是否正确)
将这个无效IAT CUT后程序可以运行,但是大部分的菜单及工具栏图标无法正常工作,应该也是MessageMap出现问题。
求各位指点如何完整脱壳并修复。附上原程序。
AtmanAvr.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)