比如我现在写了一个驱动程序作为服务开机启动,把SSDT表中的地址换成我自己的函数地址。比如hook掉了ZwTerminateProcess函数。
这时如果系统中同时有两个驱动程序,那个程序也hookSSDT表中这个函数,把SSDT表的地址替换成他的了,那我这个地址是不是就被劫持了??
这里面有没有什么先后顺序而言,比如说他的驱动是开机就运行hook的,我比较聪明,我开机之后延迟1分钟开始hook。
这样我就劫持他了。对不对????

解决方案 »

  1.   

    HOOK 是否冲突  要看HOOK了之后做了什么谁最后HOOK 或者说 最终 SSDT 对应谁的函数地址 那就谁最先获得控制权
    你延迟一分钟HOOK  人家每过1分钟检查一次,不是就HOOK 不是比你还厉害
      

  2.   

    我测试了,真被劫持了。。这个不靠谱啊。
    进程保护靠修改SSDT地址不行。如果修改内存中ZwTerminateProcess函数段代码呢?jmp跳转,这样也难免两个驱动修改同一内存地址冲突,但是要更高明一些。还有什么办法。