首页
社区
课程
招聘
[分享]hook ZwQueryDirectoryFile实现文件隐藏
发表于: 2008-4-23 19:52 52968

[分享]hook ZwQueryDirectoryFile实现文件隐藏

2008-4-23 19:52
52968

学习了网上《编写驱动拦截NT的API实现隐藏文件目录》这篇文章 参考这篇文章的代码 自己试着写了下 现发出来我调试成功的代码 给需要的朋友们


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (35)
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
2
不错,学习了
2008-4-23 20:06
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
N老的code了。
2008-4-23 20:12
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
对于我这个新手来说什么都是新的哦
还请大侠们多给我们新手更新一下知识哦
2008-4-23 20:15
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
这位大大,请问你的编译平台机器如何配置的?可以说给我新手听吗?
2008-4-23 20:26
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
主要就是ddk啊 我用的editplus
2008-4-24 08:49
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
7
帮你顶一下..呵呵
2008-4-24 10:37
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
能不能给个调用实例?
2008-4-30 16:16
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
调用很简单了  或者使用工具安装 我测试程序的时候都没写调用 就用的这个tool
上传的附件:
2008-4-30 16:58
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
请朋友们帮我测试上面程序  原来正常使用 现在却蓝屏 我怀疑是金山2008在捣鬼!
2008-4-30 17:32
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
我的猜测是错的 原来我的程序在ntfs文件格式的盘上会蓝屏 请问大侠们 为什么?
2008-4-30 19:30
0
雪    币: 243
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12

int iPos = ((ULONG)pFileInfo) - (ULONG)FileInformation;
int iLeft = (DWORD)Length - iPos - pFileInfo->NextEntryOffset;
RtlCopyMemory( (PVOID)pFileInfo, (PVOID)( (char *)pFileInfo + pFileInfo->NextEntryOffset ), (DWORD)iLeft );

怎么理解?
我把它改成:
pLastFileInfo->NextEntryOffset+=pFileInfo->NextEntryOffset;

pLastFileInfo->FileAttributes=FILE_ATTRIBUTE_HIDDEN;
可以达到隐藏文件的效果,但是在ntfs文件系统下还是会蓝屏
2008-4-30 23:19
0
雪    币: 222
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
[QUOTE=;]...[/QUOTE]
To hpxpj:
这是修改NtQueryFileDirectory返回的信息。查询返回的是一个链表,NextEntryOffset指向链表中下一个元素,而RtlCopyMemory是将需要隐藏文件所在元素内容用下一个元素内容来覆盖以达到隐藏效果。
至于你的pLastFileInfo->FileAttributes=FILE_ATTRIBUTE_HIDDEN这个是可能达到隐藏效果,但这样做类似于平常给文件加隐藏属性一样,只需要打开显示所有文件就可以显示出来了。所以说你的第二个所谓的隐藏根本没意义。

以上仅是个人理解,如有错误,还望各位大侠指出。
2008-5-1 11:41
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
在这问大侠几个问题

怎么修改 ZwQueryDirectoryFile() 返回值 Length ,使 Length = (原 Length) - (隐藏 Length)
也就是怎么获得被 隐藏 FileInformation 的 Length ,不是 FileInformation 结构的长度

缓冲区在线性地址中一定是连续的吗

还有楼主
        int iPos = ((ULONG)pFileInfo) - (ULONG)FileInformation;
            int iLeft = (DWORD)Length - iPos - pFileInfo->NextEntryOffset;
            RtlCopyMemory( (PVOID)pFileInfo, (PVOID)( (char *)pFileInfo + pFileInfo->NextEntryOffset ), (DWORD)iLeft );

可能是 BSOD 的原因,假如缓冲区不是连续的,上面的代码想不 BSOD 都难啦
2008-5-2 22:00
0
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
我估计bsod的原因应该是没处理好文件系统之间的问题吧 ntfs和fat32之间
2008-5-2 22:27
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
16
这个只能当了解,真正用是还是会被ARK轻易检测出来
2008-5-4 10:15
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
用XPDDK编译后方可隐藏,但是,隐藏的目录或文件不能被打开,一旦被打开就蓝屏。
比如,我隐藏了目录abc,我在地址栏里打入目录名abc回车后就蓝屏了,这是什么原因,要怎么解决?
2008-5-7 08:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习了以上内容有两个问题请教:
  1、为什么一读取隐藏的文件或文件夹,系统就崩溃重新启动?
    如隐藏D:\flashget.htm,在D:\执行dir flashget.htm就出现这故障,
    如隐藏文件夹,一进入这文件夹也是这样,
    如隐藏文件夹D:\txt,在D:\执行cd txt就出现这故障.
    这是个致命的Bug。
  2、如何隐藏指定路径的文件? 如D:\txt\txt.dat
  望高手们不吝赐教,一切烦劳!我的系统:WINXP+SP1+VC6+WINXPDDK
2008-5-21 15:08
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
发表下菜鸟的意见,可能还需要Hook ZwOpenFile 函数,当打开被隐藏的文件时,给它个文件不存在
2008-5-21 16:34
0
雪    币: 91
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
rootkit网上介绍很多.下一个包.里面很多.不过现在没有人还研究这个了.好象喜欢搞np.
2008-5-21 17:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
请问如何Hook ZwOpenFile 函数,能否给出代码?
请问哪里有rootkit的源码包下载,请告知,一切烦劳!多谢了!
还有个问题:什么是np?
2008-5-22 11:30
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
根据楼主的代码,依样画葫芦

NP,好像是用来保护游戏的
2008-5-24 12:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
多谢了!!!:-)
2008-5-25 14:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
1.请问如获得过滤文件的全部路径?如D:\txt\read.txt,如何得到D:\txt
2.请问如何隐藏指定路径的文件?如要隐藏d:\txt\read.txt,而不是隐藏所有的read.txt.
  烦请高手赐教,一切烦劳!
2008-5-26 09:30
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
学习学习
多谢楼主分享
2008-5-27 08:08
0
游客
登录 | 注册 方可回帖
返回
//