laohei 发表于 2022-4-24 08:24:32

suhang 发表于 2022-4-10 03:35
破虚拟化 DLL也是一样 没破是写不进去内存的

有没有详细教程

comeinfo 发表于 2022-7-23 00:01:57

不知道应用层怎么实现,如果你都能读了和虚拟化就没有什么关系了
应该是内存写保护属性,驱动层的话修改一下cr0寄存器的值就可以了
下面附个短代码

//关闭内存写保护
KIRQL CloseProtection() {
      KIRQL irql = KeRaiseIrqlToDpcLevel();
      UINT64 cr0 = __readcr0();
      cr0 &= 0xfffffffffffeffff;
      __writecr0(cr0);
      _disable();
      return irql;
}
//恢复内存写保护
void ResumeProtection(KIRQL irql) {
      UINT64 cr0 = __readcr0();
      cr0 |= 0x10000;
      _enable();
      __writecr0(cr0);
      KeLowerIrql(irql);
}
这边建议调用完一定要恢复,不然你会寄的

yisena 发表于 2022-8-1 17:45:50

r3层调用VirtualProtectEx试试

laohei 发表于 2022-11-22 23:13:07

解决了,用了修改内存属性函数就行了
页: 1 [2]
查看完整版本: 游戏内存能读不能写是为什么,有保护吗,该怎么办!