衡阳网站开发有哪些公司,怎么建设淘客自己的网站、,人工智能,烟台市两学一做网站100编程书屋_孔夫子旧书网 MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相比于CR3切换来说,此方式更稳定并不会…
100编程书屋_孔夫子旧书网 MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相比于CR3切换来说,此方式更稳定并不会受寄存器的影响。
MDL读取内存步骤
1.调用PsLookupProcessByProcessId得到进程Process结构2.调用KeStackAttachProcess附加到对端进程内3.调用ProbeForRead检查内存是否可读写4.拷贝内存空间中的数据到自己的缓冲区内5.调用KeUnstackDetachProcess接触绑定6.调用ObDereferenceObject使对象引用数减1代码总结起来应该是如下样子,用户传入一个结构体,输出对应长度的字节数据:
#include ntifs.h
#include windef.htypedef struct
{DWORD pid; // 要读写的进程IDDWORD64 address; // 要读写的地址DWORD size;