首页
社区
课程
招聘
[求助]关于NtdllIATHook反HOOK
发表于: 2013-11-21 10:51 8057

[求助]关于NtdllIATHook反HOOK

2013-11-21 10:51
8057
我写了个程序,对NTDLL.DLL里面的函数进行了IATHook,我现在想知道,别人会怎样对这个程序进行反IATHook,是讲反HOOK代码写在LOADER里进行反hook,还是讲反hook代码写在dll里,注入我这个程序进行反HOOK,还是用其它方法,请达人解惑,不好意思没分了,谢谢

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

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 1392
活跃值: (5207)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
如果是我,我会不停地检查IAT,和磁盘文件比较,恢复。
不过为啥不用inlinehook
2013-11-21 11:02
0
雪    币: 246
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ReadProcessMemory
WriteProcessMemory
不就行了吗?
不需要注入

还有就是既然是iatHook
那么被hook程序。引入表中必须有ntdll
一般情况下程序中是没有的。难得是对你对kenel32.dll等引入表中的ntdll进行iathook?
是这样吗?
否则就是inlinehook了
2013-11-21 11:04
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的猜的对,我是对kenel32.dll等引入表中的ntdll进行iathook,比较关键的函数,如ntreadvirtualmemory,ntwritevirtualmemory等函数进行了IATHOOK,现在就是想知道别人一般会有那几种方法进行反HOOK,如讲反hook代码写在loader,或者写在dll里注入反hook等
2013-11-21 11:16
0
雪    币: 246
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你说的AntiHook是被hook的程序。来Anti
还是另一个程序来anti-hook?
2013-11-21 11:23
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是另一个程序来anti-hook
2013-11-21 11:39
0
雪    币: 246
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那不需要注入。
假如A是anti-hook的程序。
B是被hook程序。

A读取自己kernel32.dll 的ntdll 引入表。
然后使用ReadProcessMemory读取B的kernel32的引入表。比较。不等
用WriteProcessMemory 写入不相等的IAT就行了。不需要注入。
2013-11-21 11:44
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
关键是我已经把ReadProcessMemory,WriteProcessMemory 等关键函数hook了,他还能读写吗
2013-11-21 11:54
0
雪    币: 246
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你是全局的hook吗?还是ring0的hook 这两个函数吗。

如果不是的。那值对ReadProcessMemory,WriteProcessMemor 只B程序调用有效。

其他程序无效。。。

如果是全局的hook那么就是进程保护的话题
2013-11-21 12:30
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我是r3层的HOOK
2013-11-21 12:43
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
总的来说谢谢你热心的关切
2013-11-21 12:44
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
全局hook
2013-11-21 12:48
0
雪    币: 246
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
ring3 全局hook reload ntdll
对于了解PE结构的人Reload ntdll 很简单。论坛里面也有相应的代码。

然后使用reload 的ZwReadVirtualMemory和ZwReadVirtualMemory ZwOpenProcess
unhook就行了。
在ring3你挡不住的。即便进了ring0.别人同样加载驱动。你也挡不住。
2013-11-21 13:13
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
很好反ntdll的IATHook,代码:
GetProcAddress(GetModuleHandle("ntdll.dll"), "Nt...");
2013-11-21 13:54
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
ShadoWWinL你好,虽然你不能得分,但对你热情的解答表示再三的感谢,由衷的谢谢
2013-11-21 14:07
0
雪    币: 246
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
希望能帮到你。
水平就这样了。只能帮你到这里了。

嘿嘿。有分给我。
2013-11-21 14:15
0
雪    币: 160
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
看你们讨论的那么热烈,冒昧的问一下,ntdll有iat吗?
iat不是输入表?ntdll有输入表???
还是说别的程序相对于ntdll的iat???
至于检测方法,GetProcAddress后判断函数是不是在这个模块里即可。
2013-11-21 14:58
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
这个还用问么,肯定是没输入函数
2013-11-21 15:41
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
看你们讨论的那么热烈,冒昧的问一下,ntdll有iat吗?
iat不是输入表?ntdll有输入表???
还是说别的程序相对于ntdll的iat???
至于检测方法,GetProcAddress后判断函数是不是在这个模块里即可。

上面讨论这么久,也没说是输入表,只有你冒出来输入表这一词
2013-11-21 16:04
0
游客
登录 | 注册 方可回帖
返回
//