关于过保护里调试对象权限清零的一个不成熟的想法
今天刚学了通过新建一个调试对象,然后替换内核中调用到DbgkDebugObjectType的地方,来达到绕过驱动保护对ValidAccessMask清零的目的,但是替换的地方用IDA看了下,有9处,这个代码量就有点大了,就想着有没有更简洁一点的方法,然后就想到了一个不成熟的想法,不知道可不可行,各位帮忙看一下。首先假设我们知道驱动保护是在哪里定位DbgkDebugObjectType的,假设就在NtCreateDebugObject(我就是在这里定位的。)
然后我们在游戏驱动加载之前,新建一个_Object_Type 来替换掉在NtCreateDebugObject里的DbgkDebugObjectType,让游戏驱动在启动之后获取到的是我们自己新建的调试对象,让它对我们的调试对象权限清零。
之后我们将原来的的DbgkDebugObjectType还原回去,这样就可以做到只修改一处的代码就可以实现绕过的目的。
还没试验,不知道可不可行。
楼主可以在无PG环境尝试一下。
不过有了用EPT实现内存欺骗的技术(GITHUB上很多这类源码),你的想法其实就没多大意义了。 Tesla.Angela 发表于 2018-1-26 23:58
楼主可以在无PG环境尝试一下。
不过有了用EPT实现内存欺骗的技术(GITHUB上很多这类源码),你的想法其实 ...
感谢
页:
[1]