-
-
[旧帖] [讨论]关于帖子手脱upx,修复IAT出错的解决办法 0.00雪花
-
发表于: 2016-4-23 10:36 1798
-
由于不是正确会员,没有办法在其他版面回帖
直接ESP定律来到OEP进行脱壳,脱壳不要选择OD自带的那个重建输入表(把那个勾去掉),然后修复。原帖中的问题是IAT没有修复完整,在OD中发现
0047D36C 00000000
0047D370 >75A70AA2 oleaut32.LoadTypeLib
0047D374 >75A81F8E oleaut32.RegisterTypeLib
0047D378 >75A91C91 oleaut32.UnRegisterTypeLib
0047D37C 00000000
0047D380 >74FB74BD shell32.ShellExecuteA
0047D384 >74FB8F36 shell32.Shell_NotifyIconA
0047D388 00000000
0047D38C 000C2F00
0047D390 000C2F10
0047D394 000C2F23
0047D398 000C2F32
0047D39C 000C2F43
0047D3A0 000C2F52
0047D3A4 000C2F5E
0047D3A8 000C2F70
下面很多地方还是RVA,没有 修复,至于原因,可能是偏移是错的(我是这么理解的:在文件中,INT和IAT是相同的,都保存的是一个RVA,指向的是一个结构体,这个结构体有序号和函数名,Windows PE加载器通过读取IAT指向 的这个结构体,通过其函数名,去获取这个函数的地址,再填充到IAT中,这样完成了IAT的覆盖)
我的解决办法,去掉OD插件dump脱壳里面重建输入表的勾,然后通过ImportRec工具,修复那个定位到ntdll中的defWindowProcA修复为user32中的defWindowProcA即可,修复成功。
1_.rar
直接ESP定律来到OEP进行脱壳,脱壳不要选择OD自带的那个重建输入表(把那个勾去掉),然后修复。原帖中的问题是IAT没有修复完整,在OD中发现
0047D36C 00000000
0047D370 >75A70AA2 oleaut32.LoadTypeLib
0047D374 >75A81F8E oleaut32.RegisterTypeLib
0047D378 >75A91C91 oleaut32.UnRegisterTypeLib
0047D37C 00000000
0047D380 >74FB74BD shell32.ShellExecuteA
0047D384 >74FB8F36 shell32.Shell_NotifyIconA
0047D388 00000000
0047D38C 000C2F00
0047D390 000C2F10
0047D394 000C2F23
0047D398 000C2F32
0047D39C 000C2F43
0047D3A0 000C2F52
0047D3A4 000C2F5E
0047D3A8 000C2F70
下面很多地方还是RVA,没有 修复,至于原因,可能是偏移是错的(我是这么理解的:在文件中,INT和IAT是相同的,都保存的是一个RVA,指向的是一个结构体,这个结构体有序号和函数名,Windows PE加载器通过读取IAT指向 的这个结构体,通过其函数名,去获取这个函数的地址,再填充到IAT中,这样完成了IAT的覆盖)
我的解决办法,去掉OD插件dump脱壳里面重建输入表的勾,然后通过ImportRec工具,修复那个定位到ntdll中的defWindowProcA修复为user32中的defWindowProcA即可,修复成功。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
谁下载
赞赏
雪币:
留言: