首页
社区
课程
招聘
[旧帖] [求助]关于调用ZwQueryDirectoryFile的问题 0.00雪花
发表于: 2011-7-18 16:53 1325

[旧帖] [求助]关于调用ZwQueryDirectoryFile的问题 0.00雪花

2011-7-18 16:53
1325
请求各位大侠帮忙,我刚接触ZwQueryDirectoryFile,对它的用法不熟悉,在摸索的过程中遇到了一个问题,代码如下:

UNICODE_STRING string;
	OBJECT_ATTRIBUTES  objattr;
	HANDLE  hFile;
	IO_STATUS_BLOCK iostatus;
	NTSTATUS status ;
	NTSTATUS directoryStatus ;
	FILE_BOTH_DIR_INFORMATION dirinformation;
	PFILE_BOTH_DIR_INFORMATION pFileInfo = &dirinformation;

	PFILE_BOTH_DIR_INFORMATION pnextFileInfo;
	
	RtlInitUnicodeString(&string, L"\\??\\d:\\test");//test是一个文件夹,文件夹下有一个文件1.txt
	InitializeObjectAttributes(&objattr,&string, OBJ_CASE_INSENSITIVE, NULL, NULL);

	status = ZwOpenFile(&hFile,FILE_LIST_DIRECTORY | SYNCHRONIZE,&objattr, &iostatus, FILE_SHARE_READ | FILE_SHARE_WRITE ,FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT | FILE_OPEN_FOR_BACKUP_INTENT);
	directoryStatus = ZwQueryDirectoryFile(hFile,NULL,NULL,NULL,&iostatus,pFileInfo,sizeof(FILE_BOTH_DIR_INFORMATION),FileBothDirectoryInformation,FALSE,NULL,TRUE);

	if(NT_SUCCESS(directoryStatus))
	{

		DbgPrint("success\n");
		DbgPrint("%ws",pFileInfo->FileName);
		DbgPrint("length = %u",pFileInfo->FileNameLength);
		DbgPrint("%u",pFileInfo->NextEntryOffset);//为什么在DbgView.exe中打印出来的结果是:0,不是在test文件夹下有文件吗?


	}

	else
		DbgPrint("error\n");

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
2
去查查msdn吧
2011-7-18 16:55
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我查过了,但还是不清楚为什么打印的是0,可以指导指导吗?
2011-7-18 17:10
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
对你的问题不大清楚,不过如果是我,我会使用文件夹循环

主要使用
FindFirstFile  FindNextFile等函数。

判断时考虑FindFileData.dwFileAttributes&0x10是否为0x10,
如果不等于则为文件,
如果等于0x10
并且strcmp(FindFileData.cFileName,".")!=0,
并且strcmp(FindFileData.cFileName,"..")!=0,
则为文件夹,继续循环。

我都是这样用的
2011-7-18 17:17
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
FindFirstFile和FindNextFile是win32 API ,属于用户态的接口函数,我现在是直接调用内核层的接口函数
ZwQueryDirectoryFile,但是我不熟悉这个函数,在WDK帮助文档中也查了,但还是不知道为什么出现上面的原因,求指导。
2011-7-18 17:22
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
pFileInfo->NextEntryOffset这是子文件夹吧?
2011-7-18 20:17
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
遇到同样的问题!楼主解决了吗?
2011-7-21 12:00
0
游客
登录 | 注册 方可回帖
返回
//