今天在研究恢复SSDT表,需要从硬盘文件里读取SSDT原始的表
在用ZwCreateFile打开 ntoskrnl.exe遇到问题。
ZwCreateFIle调用处代码如下:
换了好几种路径 都没有成功。
RtlInitUnicodeString(&FileName,L"\\SystemRoot\\System32\\ntoskrnl.exe");
InitializeObjectAttributes(&fileInfo,&FileName,OBJ_CASE_INSENSITIVE,NULL,NULL);
status=ZwCreateFile(handle,FILE_READ_DATA,&fileInfo,&ioStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ|FILE_SHARE_WRITE,FILE_OPEN,FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
DbgPrint("File Handle: %x",(ULONG)handle);
ZwClose(handle);
RtlInitUnicodeString(&FileName,L"\\??\\SystemRoot\\System32\\ntoskrnl.exe");
InitializeObjectAttributes(&fileInfo,&FileName,OBJ_CASE_INSENSITIVE,NULL,NULL);
status=ZwCreateFile(handle,FILE_READ_DATA,&fileInfo,&ioStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ|FILE_SHARE_WRITE,FILE_OPEN,FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
DbgPrint("File Handle: %x",(ULONG)handle);
ZwClose(handle);
RtlInitUnicodeString(&FileName,L"\\??\\\\SystemRoot\\System32\\ntoskrnl.exe");
InitializeObjectAttributes(&fileInfo,&FileName,OBJ_CASE_INSENSITIVE,NULL,NULL);
status=ZwCreateFile(handle,FILE_READ_DATA,&fileInfo,&ioStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ|FILE_SHARE_WRITE,FILE_OPEN,FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
DbgPrint("File Handle: %x",(ULONG)handle);
ZwClose(handle);
RtlInitUnicodeString(&FileName,L"\\??\\C:\\Windows\\System32\\ntoskrnl.exe");
InitializeObjectAttributes(&fileInfo,&FileName,OBJ_CASE_INSENSITIVE,NULL,NULL);
status=ZwCreateFile(handle,FILE_READ_DATA,&fileInfo,&ioStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ|FILE_SHARE_WRITE,FILE_OPEN,FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
DbgPrint("File Handle: %x",(ULONG)handle);
ZwClose(handle);
DbgPrint("%x",ioStatus.Information);
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)