我打算做一个安全防护软件,能禁止使用软盘、优盘、移动硬盘、附加硬盘等手段从本机硬盘上拷贝文件数据,把硬盘单独隔离保护.
请问如何才能用VC实现以上的功能.

解决方案 »

  1.   

    用HOOK来做,
    如果是copy文件到其它盘就取消掉
      

  2.   

    我是想过HOOK所有的文件
    这样的话
    系统运行起来会不会很慢啊
    有没有就监视外设(软盘,u盘,刻录机)的写就可以了
      

  3.   

    楼主何不直接禁用设备,可以看看MSDN中 DDK的帮助
    可能用到下面几个函数
    1 SetupDiGetClassDevs
    2 SetupDiEnumDeviceInfo
    3 SetupDiSetClassInstallParams
    4 SetupDiCallClassInstaller
    ===============================
    或者可以通过修改注册表的方法来实现禁用设备 网上有很多相关的资料
      

  4.   

    谢谢signoft(晴天)的指导如果某用户是改安全软件的合法用户
    他只要提供合法的密码
    能不能启用被禁止的外设??
      

  5.   

    surstar(断水流)说的也是直接用一个全局HOOK来监控系统的文件操作
    这样会不会很慢啊??
      

  6.   

    如果你要实现这样的功能
    肯定是要系统级的方法
    全局HOOK速度不会很慢,可以接受
    不过要是机器差就没办法啦
      

  7.   

    打算做一个安全防护软件,能禁止使用软盘、优盘、移动硬盘、附加硬盘等手段从本机硬盘上拷贝文件数据,在用户进行文件操作时,能监视并判断这个是否合法用户的操作,如果是则正常通过;否则拒绝操作.总结一下:
    1.使用全局钩子(HOOK)
    2.使用禁止外设(DDK)
    3.使用过滤驱动希望CSDN的高手多多指点,分不够再加
      

  8.   

    使用Hook简单些,拦截掉WriteFile这个API函数,一旦发现不是写入硬盘的话,则返回错误即可。
    我的主页有很多利用 API Hook做的例子,你可以参考一下
    http://myproject.91x.net/
      

  9.   

    最简单的办法是:使用copy hook。该内容在MSDN的shell章节中有详细叙述。但缺点是:不能阻止自编程的操作。
      

  10.   

    谢谢   linuxpgy(永远) 的指导:-)