- 注册时间
 - 2021-4-16
 
- 最后登录
 - 2024-8-22
 
- 在线时间
 - 5 小时
 
 
 
 
 
编程入门 
  
	- 龙马币
 - 116 
 
 
 
 
 | 
 
 
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 
 
 
 |   
 
 
 
 |