// Test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
typedef NTSTATUS (NTAPI* NTCREATEFILE)(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER AllocationSize OPTIONAL,
IN ULONG FileAttributes,
IN ULONG ShareAccess,
IN ULONG CreateDisposition,
IN ULONG CreateOptions,
IN PVOID EaBuffer OPTIONAL,
IN ULONG EaLength
);
typedef NTSTATUS (NTAPI* NTCLOSE)(
IN HANDLE Handle
);
int _tmain(int argc, _TCHAR* argv[])
{
HMODULE hModule = NULL;
NTCREATEFILE NtCreateFile = NULL;
NTCLOSE NtClose = NULL;
UNICODE_STRING FileName = {0};
OBJECT_ATTRIBUTES Oa = {0};
HANDLE hFile1 = NULL;
NTSTATUS ntStatus = STATUS_UNSUCCESSFUL;
IO_STATUS_BLOCK Iosb = {0};
HANDLE hFile2 = INVALID_HANDLE_VALUE;
PWCHAR pBuffer = NULL;
DWORD dwRet = 0;
__try
{
hModule
在应用层使用ntdll.dll中的未导出函数
最新推荐文章于 2022-08-15 10:49:05 发布
本文展示了如何在C++程序中使用LoadLibrary和GetProcAddress动态调用ntdll.dll中的未导出函数NtCreateFile和NtClose进行文件操作。通过这些函数,实现了对\Device\HarddiskVolume1\windows\system32\unicode.nls文件的读取,同时对比了使用标准CreateFile函数的操作过程。
摘要由CSDN通过智能技术生成