首页
社区
课程
招聘
[原创]对 Hook 内核ntoskrnl'sZwQuerySystemInformation隐藏任务管理器进程名 的一点完善
发表于: 2007-12-20 17:17 19475

[原创]对 Hook 内核ntoskrnl'sZwQuerySystemInformation隐藏任务管理器进程名 的一点完善

2007-12-20 17:17
19475

通过hook ssdt中的ZwQuerySystemInformation来实现隐藏进程已经是很老的技术了。
qiweixue 在他的文章里面写的很清楚了:
http://bbs.pediy.com/showthread.php?t=36742&highlight=%E9%9A%90%E8%97%8F+%E8%97%8F%E8%BF%9B+%E8%BF%9B%E7%A8%8B

不过他的文章里面,进程名字是直接写死的,不能通过三层进行传递,而且得到ZwQuerySystemInformation是通过汇编的方法,这样在其他系统上可能会有问题,所以我做了一些改善如下:
1 通过应用程序将进程名字传递进来,可以传递多个进程名字,格式为:qq.exe;taskmgr.exe;
2 通用的方法来得到ZwQuerySystemInformation的地址,不过这个方法都是从rookit上得来的。
很简单的完善了。如果没有接触过驱动的同学估计有点帮助(其实很不好意思拿上来。。)

驱动代码如下:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
汗一个,权限还没够,不能带附件,等够了,我再把代码发上来。。
2007-12-20 17:18
0
雪    币: 97697
活跃值: (200839)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
Thanks.
2007-12-20 18:31
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
谢谢支持,代码在公司,明天传上来!
2007-12-20 21:05
0
雪    币: 486
活跃值: (13)
能力值: ( LV9,RANK:430 )
在线值:
发帖
回帖
粉丝
5
很强悍啊,可惜我看起来有点吃力。不过得支持一下楼主的辛劳。
2007-12-21 00:42
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
呵呵,你的CPU时间片还没有隐藏呢。。。

GetDllFunctionAddress这个应用广泛啊,MS都拿它来得到函数地址了~~~
不过不需要这么麻烦嘛,申明SSDT的原型后直接通过索引就得到ZwQuerySystemInformation了,何必绕个圈圈捏~

此方法当科普了。实战就不行啦
2007-12-21 08:46
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
不同系统的索引地址是不一样的吧。这个不是拿来实战的。。。
这么老的技术,怎么实战啊。。
2007-12-21 10:51
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
8
看看这个宏吧。看来你还没完全理解哦

//获得函数在SSDT中的索引宏
#define SYSCALL_INDEX(_Function) *(PULONG)((PUCHAR)_Function+1)
2007-12-21 11:33
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
9
恩,确实不懂这个,我是初学。
无意中看到你的blog了。。。
学习了。
2007-12-21 11:38
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
10
厉害,学习了~~~
2007-12-21 12:37
0
雪    币: 243
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我觉得要完善,应该传递进程ID,而不是进程名
2007-12-21 13:10
0
雪    币: 156
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习ing~~~~~~~`
2007-12-21 14:13
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
13
恩,有道理,在_SYSTEM_PROCESSES里面有进程id号,可以拿来比较。
2007-12-21 14:41
0
雪    币: 324
活跃值: (91)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
14
感谢楼主的无私共享精神!简洁的代码!
2007-12-22 11:33
0
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
15
怎么在我机子上隐藏不了啊?

点[隐藏], 一点效果没有,任务管理器上照样有这个进程名
2007-12-29 10:21
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
16
注意输入格式:  进程名;   分号是必须的。
2007-12-29 14:46
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
17
还有,你的驱动应该自己加载,我没有在应用程序里面自动加载驱动的。偷了下懒。。
2007-12-29 14:46
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
18
nice job
2007-12-29 20:01
0
雪    币: 185
活跃值: (295)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
19
怎么知道隐藏的进程正在运行
2008-1-23 08:30
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
20
似乎走题了。。

用openprocess从0到0xffc依次open  能open成功的就是存在的(不能成功的不一定不存在)
2008-1-23 09:48
0
游客
登录 | 注册 方可回帖
返回
//