阅读:1987回复:0
SSDT中hook zwcreatfile的疑惑,希望大虾们指教!
本人是菜鸟,刚学习rootkit,决定做个SSDT中hook zwcreatfile的重定向程序。
在Hook了zwcreatfile后保留原地址old_zwcreatfile,并用新地址hook_zwcreatfile覆盖,当需要重定向的源文件A和目的文件B的路径长度不一样时,构造新的OBJECT_ATTRIBUTES结构,并使原始传入参数指向新的结构,可是运行系统错误。细查大虾们的帖子,发现是usermode和kernelmode的问题,可是自己又不会改变这些,于是采用WQXNETQIQI 大虾介绍的其中一个简单方法,当出现需要HOOK的文件A时,重新调用zwcreatfile并将路径改为B(重入?),这样就成功了。小弟不知道具体的原因,看大虾们说是什么线程模式的切换也看得云里雾里,自我感觉是因为调用zwcreatfile系统不需检查usermode和kernelmode的问题,而Ntcreatfile就要检查usermode和kernelmode的问题,不知是不是?请大虾赐教! |
|