现在接到这样的一个项目:
比如用户的移动硬盘有三个个分区,在pc上分别为E,F,G通过软件来指定E区为数据加密区,F为隐藏区,G为正常区当移动硬盘插上时,G区和普通分区一样正常工作.如果在软件中输入的密码不对,看不到F区,输入正确,可设置F区的可见性E区为加密区,所有数据都通过软件加密后存储和读取.如果在软件中输入的密码不对,不能对E进行读取和写入.
大体的需求就是这样了.
现在有如下问题:1,如何隐藏分区(不要用修改注册表的方法),谁有相关资料?
2,指定了E区为加密区,如何让系统在对e区进行读写之前,先通过软件的"过滤"?

解决方案 »

  1.   

    我不是高手, 我帮你up. hook api? 不知道是否可行, 学习ing
      

  2.   

    即便是用hook,怎么监测有数据要写入呢?
      

  3.   

    隐藏有两个可能的思路,仅供参考。
    1.修改磁盘上文件系统的signature,改成非已知的文件系统,FsRec认不出来就会跳过去,此分区不会被装配,直接导致在我的电脑里看不到;当用户输入正确密码后把signature改回去,重新装配分区即可;
    2.磁盘上有一个结构是用于指示分区是否隐藏(PartitionMagic就是这样弄的),具体改哪里,相关资料应该不难找。要加密分区,w2k本身就支持efs,加密文件系统,并提供了一些接口;非要自己弄的话,文件过滤驱动和磁盘过滤驱动似乎都是可行的。前者可能麻烦一点,但是可以实现文件级的加密,可以指定具体哪个文件加密哪个文件不加密等等。ifs ddk里的sfilter就是一个例子。
      

  4.   

    如果有非法用户试图用fdisk、魔法分区这样的工具来使这部分空间可访问的话,那结局是:玉石俱焚,原先的数据也被清除了。除非象IBM硬盘那样的硬盘锁技术,否则这样是谁也拦不住的。
      

  5.   

    对于加密区可以用加密软件实现,有这样的软件在你的硬盘中开辟出一块区域作为加密区,当软件完成加密区开辟后,自己单独成为一个区,这样可以实现加密区;
       对于隐藏区我在研究中,假如codewarrior(会思考的草) 说的可以实现的话,可以试试!!
      

  6.   

    郁闷,昨天找了半天ddk2003,找不到,有人有吗?
      

  7.   

    DDK以前是免费的,现在官方没有下载了,但是很多网站都有,google一下可以找到,尤其教育网很多。是用文件过滤还是磁盘过滤,要看你的需求了,有一点要区分的是,存储设备栈和文件系统栈两个不是相连的。