[求助]ImportREC 1.6英文版 如何 修复 乱序的IAT
发表于:
2010-10-27 06:59
8813
[求助]ImportREC 1.6英文版 如何 修复 乱序的IAT
一直在用ImportREC修复 脱壳 文件的 IAT
只要 在内存中定位到的 API列表 中的 API地址 是连续 属于相同的 DLL的 。并且各个 DLL的 API地址 列表 之间 被 全零 的 一个Dword值分隔开,修复就很 傻瓜 。
可是今天 遇到的这个私壳的内存中的 API列表是乱序的 ,比如,第一个 API地址属于 Kernel32,第二个 就属于 User32,下一个又属于Kernel32,之间也没有全零 隔断 。
举例如下:
1 0013086C kernel32.dll 038C WriteFile 1 00130870 kernel32.dll 03AA lstrcmpi 1 00130874 user32.dll 0021 ChangeDisplaySettingsA 1 00130878 user32.dll 0036 CharUpperBuffA 1 0013087C user32.dll 01BE LoadImageA 1 00130880 user32.dll 01DD MessageBoxA 1 00130884 user32.dll 02D9 wsprintfA 1 00130888 user32.dll 02DB wvsprintfA 1 0013088C gdi32.dll 0004 AddFontResourceA 1 00130890 gdi32.dll 002E CreateCompatibleDC 1 00130894 gdi32.dll 0033 CreateDIBSection 1 00130898 gdi32.dll 008D DeleteDC 1 0013089C gdi32.dll 01F9 RemoveFontResourceA 1 001308A0 user32.dll 000E BeginPaint 1 001308A4 user32.dll 00C9 EndPaint 1 001308A8 gdi32.dll 0196 GetObjectA 1 001308AC gdi32.dll 020F SelectObject 1 001308B0 gdi32.dll 0090 DeleteObject 1 001308B4 gdi32.dll 0013 BitBlt 1 001308B8 user32.dll 017C GetWindowThreadProcessId 1 001308BC user32.dll 0244 SetActiveWindow 1 001308C0 user32.dll 0258 SetForegroundWindow 1 001308C4 user32.dll 0218 RegisterClassExA 1 001308C8 user32.dll 015E GetSystemMetrics 1 001308CC user32.dll 0061 CreateWindowExA 1 001308D0 user32.dll 013B GetMessageA 1 001308D4 user32.dll 02AB TranslateMessage 1 001308D8 user32.dll 00A2 DispatchMessageA 1 001308DC user32.dll 009A DestroyWindow 1 001308E0 user32.dll 00DF EnumWindows 1 001308E4 user32.dll 008F DefWindowProcA 1 001308E8 user32.dll 0200 PostMessageA 1 001308EC kernel32.dll 006D CreateThread ImportREC 直接提示 加载的 列表 不可用 (Valid:NO)
我尝试通过按钮 Save Tree 将 列表导出,然后手工编辑 ,将相同DLL的 API合并在一起。
再用按钮 Load Tree导入,结果ImportREC竟然给自动排序了。刚刚的辛苦彻底白费。
请问大侠们有没有什么比较好的方法解决这个问题。
小弟的言辞可能有些混乱,希望已经描述清楚了问题的概况。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!