首页
社区
课程
招聘
[求助]输入表最后1个函数怎么也认不出来,是不是ImprotREC的bug ?
发表于: 2010-6-4 17:41 1729

[求助]输入表最后1个函数怎么也认不出来,是不是ImprotREC的bug ?

2010-6-4 17:41
1729
输入表最后1个函数怎么也认不出来,是不是ImprotREC的bug ?

最近玩Zombie Bowl-O-Rama 僵尸保龄球这个游戏。
Peid查看是Upx的壳。用upx303 -d 提示脱不掉。

OD载入,esp定律直找到了oep。dump修复后运行,程序窗口都出现了然后突然报错。

又用RL!dePacker.v1.5自动脱壳,这次就可以正常运行了。

Peid查看手脱和脱壳机脱的2个文件,都是Borland Delphi 6.0 - 7.0

用od分别载入这2个程序,打开ImportREC看输入表。
手脱的显示是535个函数。
脱壳机脱的显示的是536个函数。

少了1个函数?
仔细看了看输入表,发现问题出在最后1个函数上。
005773C0  77D289A3  USER32.UnregisterClassA
005773C4  77D2AEAB  USER32.UpdateWindow
005773C8  77D1940C  USER32.WaitMessage
005773CC  77D29766  USER32.WindowFromPoint
005773D0  00000000
005773D4  77BD1A40  VERSION.GetFileVersionInfoA
005773D8  77BD19EF  VERSION.GetFileVersionInfoSizeA
005773DC  77BD18AA  VERSION.VerQueryValueA
005773E0  00000000
005773E4  76B1ACDF  WINMM.timeBeginPeriod
005773E8  76B1ADA5  WINMM.timeEndPeriod
005773EC  76B14E4F  WINMM.timeGetTime    <<========手脱的没有这个函数
005773F0  01965520
005773F4  01965500
005773F8  019654E0

我又重新打开原版程序,走到oep,仔细看了看这里。
这里明明有WINMM.timeGetTime 这个函数。
但是ImprotREC就是装作看不见!

这是怎么回事。应该怎么解决?

又尝试了几次。
输入oep后,ImportREC自动搜索IAT的大小是89C,会漏掉那个函数。
手动把IAT大小改成1000,然后GetImports
剪掉错误的地址,终于能看到那个函数,正常了。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//