首页
社区
课程
招聘
[求助]ZwReadFile打印文本内容缺失问题
发表于: 2013-9-7 20:06 4780

[求助]ZwReadFile打印文本内容缺失问题

2013-9-7 20:06
4780
我测试了很多次.每次打印最多只有495个字节..
小于495个字节能全部打印出来.超过495个字节的话.就会忽略超过的部分.

我本想写个函数.传入句柄.读取一个文本的全部内容.现在问题文本太大就不行了.

忘前辈解答.如何修改代码.不管文件多大.都能读取全部内容.先谢谢了.

VOID CUSTOM_Read_File(HANDLE C_File_Handle)
{
	NTSTATUS J_Return;
	IO_STATUS_BLOCK J_File_Status;
	PVOID J_Buffer;
	FILE_STANDARD_INFORMATION J_File_InformationFile;
	LARGE_INTEGER J_Read_Location;

	J_Return = ZwQueryInformationFile(
		C_File_Handle,   //文件句柄
		&J_File_Status,  //收到最后的完成状态和其他有关的信息
		&J_File_InformationFile, //文件信息结构体
		sizeof(FILE_STANDARD_INFORMATION),
		FileStandardInformation );   //查询获取文件信息

	KdPrint(("QuadPart : %ld字节\n",(SIZE_T)J_File_InformationFile.EndOfFile.QuadPart));
	J_Buffer = ExAllocatePool(NonPagedPool,(SIZE_T)J_File_InformationFile.EndOfFile.QuadPart);  //文件的大小
	
	J_Read_Location.QuadPart = 0; //开始读取的位置

	J_Return = ZwReadFile(
		C_File_Handle, //文件句柄
		NULL,
		NULL,
		NULL,
		&J_File_Status,
		J_Buffer,
		(SIZE_T)J_File_InformationFile.EndOfFile.QuadPart, //读取文件的长度
		&J_Read_Location, //开始读取的位置
		NULL);

	KdPrint(("读取的文件内容:\n%s\n",J_Buffer));

}

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1040
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
多查MSDN
There is no upper limit to the size of the Format string or the number of arguments. However, any single call to KdPrint will only transmit 512 bytes of information. There is also a limit to the size of the DbgPrint buffer.

KdPrint是有字数限制的。

同类型的,像OutputDebugString、wsprintfA之类的都有限制。
2013-9-7 21:17
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
感谢.原来不是我代码的问题.
2013-9-7 21:19
0
游客
登录 | 注册 方可回帖
返回
//