系统版本 win10-1903 版本中,修改 私有内存的 MMVAD->Core.u中的Enclave位,和自己构造一个 子内存段 _MMVAD->Subsection 中的偏移 0x4c 处,修改为 true ,即可保护。
原理:分析 NtProtectVirtualMemory 函数,实现流程 进入 通过分析,会判断 MMVAD->Core.u Enclave 位和 PrivateMemoryAlwaysSet 位 ,之后会走到MiProtectEnclavePages 函数 在MiProtectEnclavePages 函数中,进行一些判断,会判断,MMVAD->Subsection 中的偏移 0x4c 处,修改为 true如: 因为,在私有内存中,系统不会为 mmvad 结构,创建 子内存块结构,在这里的MMVAD->Subsection 字段地址,是随机值,所以要自己构造一个。判断,成功后,会直接返回,进而达到,win10_私有内存属性保护的作用
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课