|
今天刚学了通过新建一个调试对象,然后替换内核中调用到DbgkDebugObjectType的地方,来达到绕过驱动保护对ValidAccessMask清零的目的,但是替换的地方用IDA看了下,有9处,这个代码量就有点大了,就想着有没有更简洁一点的方法,然后就想到了一个不成熟的想法,不知道可不可行,各位帮忙看一下。
首先假设我们知道驱动保护是在哪里定位DbgkDebugObjectType的,假设就在NtCreateDebugObject(我就是在这里定位的。)
然后我们在游戏驱动加载之前,新建一个_Object_Type 来替换掉在NtCreateDebugObject里的DbgkDebugObjectType,让游戏驱动在启动之后获取到的是我们自己新建的调试对象,让它对我们的调试对象权限清零。
之后我们将原来的的DbgkDebugObjectType还原回去,这样就可以做到只修改一处的代码就可以实现绕过的目的。
还没试验,不知道可不可行。
|
|