上周在xyzreg、Virvir以及小胡的邀请下,终于回了趟学校。学校里的孩子好青春啊。
近期可能会有一个64位平台的驱动开发任务,找了些资料,对64位平台下的驱动开发略知一二了,感觉好神奇。
一。在64位系统下,有一项PatchGuard技术,它是微软为了防止自己的代码被Patch,进而影响系统的稳定性引入的,这项技术会检查以下内容有没有被恶意修改过:
1- SSDT (System Service Descriptor Table)
2- GDT (Global Descriptor Table)
3- IDT (Interrupt Descriptor Table)
...
前几天收到一个蓝屏DUMP文件,运行我们的XX,然后运行IceSword必蓝,由此发现了一个IceSword的BUG。由于此BUG的存在,在安装有卡巴2010的机器上运行IceSword有很大的可能蓝屏。
IceSword在启动时会检查SSDT中的NtDeviceIoControlFile有没有被Hook,如果被Hook过就首先将它恢复,但是在恢复此SSDT项时没有关写保护中断,引起ATTEMPTED_WRITE_TO_READONLY_MEMORY蓝屏。
存在问题的代码如下:
......