VOID MyWriteFile()
{
OBJECT_ATTRIBUTES objectAttributes;
IO_STATUS_BLOCK iostatus;
HANDLE hfile;
UNICODE_STRING SymbolFileName;
//初始化UNICODE_STRING字符串
RtlInitUnicodeString( &SymbolFileName, L"\\Device\\HarddiskVolume1\\1.txt");
//初始化objectAttributes
InitializeObjectAttributes(&objectAttributes,
&SymbolFileName,
OBJ_CASE_INSENSITIVE,//对大小写敏感
NULL,
NULL );
//创建文件
NTSTATUS ntStatus = ZwCreateFile( &hfile,
GENERIC_WRITE,
&objectAttributes,
&iostatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_WRITE,
FILE_OPEN_IF,//即使存在该文件,也创建
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0 );
BYTE * pBuffer =(BYTE *)ExAllocatePool(PagedPool,100);
ULONG addr=0x805c2428; //这是NtOpenProcess地址
BYTE ReadData=0;
ClosePageProtect();
for (ULONG i=0;i<50;i++)
{
_asm
{
mov eax,i
add eax,addr
mov eax,[eax]
mov ReadData,al// al为32位寄存器的低8位
}
pBuffer[i]=ReadData; 我想把读出来的一字节保存到数组中 调试输出 是正确的 但是写到文件中没有内容 应该是下面这一句的问题
}
ZwWriteFile(hfile,NULL,NULL,NULL,&iostatus,ReadData,sizeof(pBuffer),NULL,NULL);
ExFreePool(pBuffer);
ZwClose(hfile);
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课