VOID KWriteProcessMemory(PEPROCESS Process, PVOID Address, ULONG Length, PVOID
Buffer
)
{
PVOID Pdt
=
Getpdt(Process);
PVOID oldpdt;
KIRQL irql;
irql
WPOFF();
/
_disable();
oldpdt
(PVOID)__readcr3();
__writecr3(Pdt);
_enable();
__try {
ProbeForRead(Address, Length,
1
);
RtlCopyMemory(Address,
, Length);
}
__except (
) {
DbgPrint(
"WriteProcessMem Rrror!"
__writecr3(oldpdt);
WPON(irql);
测试是在WIN7 64下,想32位的进程00401000的地址写入数据
如果不关保护的话会引起蓝屏,关掉保护强制写入后就出现了一个怪事了。。。
写入倒是值正确的写入了,可关掉进程重新打开地址还是上次写入的数据。。更奇怪的事把文件名改了再打开还是一样。。。。但是把文件从新复制一遍到虚拟机就刷新了,这是咋回事啊??
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法