tea524 发表于 2018-1-26 22:43:05

关于过保护里调试对象权限清零的一个不成熟的想法

今天刚学了通过新建一个调试对象,然后替换内核中调用到DbgkDebugObjectType的地方,来达到绕过驱动保护对ValidAccessMask清零的目的,但是替换的地方用IDA看了下,有9处,这个代码量就有点大了,就想着有没有更简洁一点的方法,然后就想到了一个不成熟的想法,不知道可不可行,各位帮忙看一下。


首先假设我们知道驱动保护是在哪里定位DbgkDebugObjectType的,假设就在NtCreateDebugObject(我就是在这里定位的。)

然后我们在游戏驱动加载之前,新建一个_Object_Type 来替换掉在NtCreateDebugObject里的DbgkDebugObjectType,让游戏驱动在启动之后获取到的是我们自己新建的调试对象,让它对我们的调试对象权限清零。


之后我们将原来的的DbgkDebugObjectType还原回去,这样就可以做到只修改一处的代码就可以实现绕过的目的。

还没试验,不知道可不可行。

Tesla.Angela 发表于 2018-1-26 23:58:42

楼主可以在无PG环境尝试一下。

不过有了用EPT实现内存欺骗的技术(GITHUB上很多这类源码),你的想法其实就没多大意义了。

tea524 发表于 2018-1-27 09:35:13

Tesla.Angela 发表于 2018-1-26 23:58
楼主可以在无PG环境尝试一下。

不过有了用EPT实现内存欺骗的技术(GITHUB上很多这类源码),你的想法其实 ...

感谢
页: [1]
查看完整版本: 关于过保护里调试对象权限清零的一个不成熟的想法