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