驱动在hook系统函数的时候通常要将只读属性暂时的屏蔽掉,主要有三种方法
1.修改CR0寄存器的WP位,使只读属性失效(这是网上用的最多的方法),切忌使用完之后立马修改回来
2.只读的虚拟地址,通过CR3寄存器中的页目录物理地址找到页目录项继而找到页表项,然后修改页表项中的W位来进行修改
3.在页表里新找一项,将其对应的物理地址改为,你要修改那页的物理地址,页属性为可写。然后操作那页即可。X86体系的缺点是可以保护虚拟地址,但不能保护物理地址。
CR0 寄存器
CR4
2022-10-14 18:33:27
驱动在hook系统函数的时候通常要将只读属性暂时的屏蔽掉,主要有三种方法
1.修改CR0寄存器的WP位,使只读属性失效(这是网上用的最多的方法),切忌使用完之后立马修改回来
2.只读的虚拟地址,通过CR3寄存器中的页目录物理地址找到页目录项继而找到页表项,然后修改页表项中的W位来进行修改
3.在页表里新找一项,将其对应的物理地址改为,你要修改那页的物理地址,页属性为可写。然后操作那页即可。X86体系的缺点是可以保护虚拟地址,但不能保护物理地址。
CR0 寄存器
CR4