首页
社区
课程
招聘
未解决 [悬赏]被IAT hook 后 怎么获得函数的原始地址 2.00雪花
发表于: 2017-6-3 14:29 5213

未解决 [悬赏]被IAT hook 后 怎么获得函数的原始地址 2.00雪花

2017-6-3 14:29
5213

函数已经被IAThook

图中是PCHunter获得到的地址

求教 怎么才能获得被IATHOOK后的函数的原始地址呢?


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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 7379
活跃值: (4086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
getprocaddress不就可以了吗
2017-6-3 16:20
0
雪    币: 5954
活跃值: (46)
能力值: ( LV4,RANK:140 )
在线值:
发帖
回帖
粉丝
3
根据索引查找INT获得函数名,然后GetProcAddress应该就行了
2017-6-3 17:49
0
雪    币: 401
活跃值: (50)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
http://www.blogfshare.com/get-original-ssdt.html
http://bbs.pediy.com/thread-101165.htm

看懂了给最佳答案吧
2017-6-4 01:48
0
雪    币: 1511
活跃值: (398)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
目前能想到的有两种情况:
第一,宿主程序的INT保存完好,这时候可以根据函数名同时利用GetProcAddress获得正确的API地址
第二,宿主程序的INT被破坏性的转储,而且加上HOOK的影响,API在执行时并不是直接跳转到正确的地址,这时候可以考虑当前虚存中有多少dll是载入到里面的,并记录下他们的BaseStartAddr和BaseEndAddr,当程序跳转到的地址和这些记录的范围发生匹配关系时,即可进行还原,还原过程可能如下,首先要在该匹配DLL的导出表中找到和真实跳转地址匹配的值,然后将该API的函数名和真实地址修复回原来的导入表中即可(猜想importREC的hook修复过程也是这样的把)
2018-4-6 11:42
1
雪    币: 1511
活跃值: (398)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
htpidk getprocaddress不就可以了吗
这样获取到的依然是钩子构造好的函数地址
2019-5-4 21:19
0
雪    币: 446
活跃值: (555)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
直接从PE文件入手,自己读取导出表获取API地址
2019-6-17 14:52
1
雪    币: 1994
活跃值: (1526)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
8
直接createfile 原始的pe文件,读取到内存后,处理重定向后,解析导出表,然后算出偏移,用真实的模块基地址数字+导出表偏移这个去算真实地址。
2019-6-18 08:55
0
雪    币: 3129
活跃值: (3668)
能力值: ( LV8,RANK:158 )
在线值:
发帖
回帖
粉丝
9
把被hook的dll的代码段在原始pe文件里面提取出来,处理完重定位后覆盖原来内存里的代码段
2019-7-8 03:35
0
游客
登录 | 注册 方可回帖
返回
//