突破WIN7的PatchGuard
WIN64 有两个内核保护机制,KPP 和 DSE。KPP 阻止我们 PATCH 内核,DSE 拦截我们加载驱动。当然 KPP 和 DSE 并不是不可战胜的,WIN7X64 出来不久,FYYRE 就发布了破解内核的工具,后来有个叫做 Feryno 的人又公开了源代码。
要实现突破 DSE 和 PatchGuard,必须修改两个文件,winload.exe 以及ntoskrnl.exe。
细节就不说了,大体思路就是在winload.exe改一个地方,ntoskrnl.exe改两个地方,直接改变代码段的逻辑,把签名校验和一些验证的东西给磨掉了,改完后记得修改PE文件的checksum。这一章节看了两遍,但是并没有打算仔细整理,因为实战作用不大,1是因为要改PE文件;2是还要重启生效,同时生效后所有的签名都随便加载了,实用性不是很大,说道重启,可以弄一个小把戏,现在机器上开启调试模式,然后把自己的安装程序埋伏好,下次重启的时候马上装上驱动,然后在立刻重启一次,但是有个问题没有验证,在调试模式下装的驱动,取消调试模式之后是否可以正常工作,或者就直接用TDL内存里加载64位无签名驱动就行了。