-
-
[求助]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作者讲授!