本帖最后由 hongh520 于 2010-01-07 11:51:33 编辑

解决方案 »

  1.   

    如果AUTORUN.INF写入已经完成,我们无法知道是谁写的这个文件。
    只有正在写和将要写的时候才行,而这就要用到HOOK技术,Hook住文件读写的几个API,完成类似FileMon的功能。
      

  2.   

    这个我也想过,但是不知道windows写文件的消息是什么?捕获哪个消息?
      

  3.   

    回一楼的:
    如果AUTORUN.INF写入已经完成, 也是可以知道的!
    比如迅雷写入文件,锁定文件,非锁定文件,关闭迅雷后,还是能知道迅雷当时操作过的事件!
    “ Process Monitor ”这个软件就能做到··
      

  4.   

    1.通过ZwQuerySystemInformation查询当前系统的所有句柄信息,然后调用OpenProcess获取目标进程句柄,
    2.遍历当前所有进程,根据进程ID,得到此进程打开的所有句柄信息,接下来用DuplicateHandle复制Handle到本地进程,
    3.然后把文件句柄发给内核驱动进行名字的查询,驱动将返回文件句柄对应的内核文件对象的完整名字。
    4.比较文件名。文件名相同则可确定使用该文件的进程。流程总结:目标进程--句柄表--DuplicateHanel到本进程--发送给驱动获取文件名--相同则确定目标进程为正在使用该文件的进程驱动处理句柄的主要函数:ObReferenceObjectByHandle ObQueryNameString
        
      

  5.   


    谢谢jackson35296!! 你的回答很专业!