以前看过一个软件可以禁止复制文件到u盘,而且电脑上文件是可以打开的,应该不是用hook
Createfile做的,不知道如何做到?反过来说,又能否做到禁止从u盘复制文件到别的盘?

解决方案 »

  1.   

    可以禁止向U盘写入数据,最好是用驱动程序实现,用Hook CreateFile也可以,不过有些操作Hook不到。无法禁止从U盘复制文件出来,因为只要能读就能复制,最多只能指针某些操作来处理。
      

  2.   

    to cnzdgs 如何禁止向U盘写入数据,除了驱动,还有什么方法做呢??如果用hook Createfile,里面的文件就打不开了。
    还有一个问题,为什么可以禁止向U盘复制文件却不能禁止从u盘复制文件到电脑呢?不明白
      

  3.   

    能读就能复制,即使像SAM这样的文件,虽然系统限制不能复制,但是还是可以写驱动什么的复制出来。
      

  4.   

    Hook CreateFile的时候做一些判断,不要一律返回失败,例如判断dwDesiredAccess参数是否要求写权限,如果没有要求写权限,就调用原函数并返回。
    所谓复制,就是把文件读出来,再写到另外一个地方,因为你只能控制U盘而无法控制向其它地方写,所以能从U盘读出文件就能复制了。例如用记事本打开U盘的一个文件,然后另存到其它位置,这就是一种复制方法。
      

  5.   

    忘记说一点,不能复制的原因是disk is write protected,连另存到u盘的时都会出现disk is write protected
    ,所以不能复制
      

  6.   

    不知道你说的是不能复制到所有U盘
    还是某一特定U盘?前者需要做一个程序来控制
    后者只是U盘写保护
      

  7.   

    to ahalf
    如何u盘写保护??用什么API?
      

  8.   

    最好的办法还是写驱动, 在USB上加个filter