ytn2001 发表于 2024-4-3 13:01:17

Windows驱动开发:通过内存拷贝读写内存


Windows驱动开发:通过内存拷贝读写内存

内核中读写内存的方式有很多,典型的读写方式有CR3读写,MDL读写,以及今天要给大家分享的内存拷贝实现读写,拷贝读写的核心是使用MmCopyVirtualMemory这个内核API函数实现,通过调用该函数即可很容易的实现内存的拷贝读写。

MmCopyVirtualMemory是Windows内核中一个非常有用的函数,它可以在用户空间和内核空间之间实现内存数据的拷贝。这个函数通过复制内存页表并更新它们来实现拷贝,从而实现了高效的内存拷贝操作。使用MmCopyVirtualMemory可以省去手动复制内存所需的许多繁琐工作,提高代码效率和稳定性。

封装KeReadProcessMemory()内存读取。KeReadProcessMemory 是 Windows 内核中的一个函数,可用于读取其他进程的内存。其原型如下:
NTSTATUS KeReadProcessMemory(
PEPROCESS Process,
PVOID SourceAddress,
PVOID TargetAddress,
SIZE_T Size,
PSIZE_T NumberOfBytesRead
);参数说明:
Process:指定要读取内存的目标进程
SourceAddress:源内存地址,要从该地址所在进程中读取数据
TargetAddress:目标内存地址,用于存放读取操作得到的数据
Size:要读取的数据大小
NumberOfBytesRead:实际读取的数据大小,如果读取失败则为 0

**** Hidden Message *****
页: [1]
查看完整版本: Windows驱动开发:通过内存拷贝读写内存