阅读:1879回复:19
请问一下,这个功能大概怎么实现?特殊的虚拟磁盘
我要做一个咚咚,来保护系统访问的保密性。
类似于Deep Freeze那样的。 比如说,我的程序启动以后,会在我现有的存储系统上加上一层过滤,比如我的系统有三个分区:C,D,E 当我家在我的程序之后,仍然是这三个分区,但是实际上是虚拟的, 即此时所有的文件操作看起来是在C,D,E三个分区上,而实际上则是在一个虚拟的存储空间上(比如内存,或者文件),并没有真正写入到实际的分区上,这样,一旦我退出系统,那么我的虚拟存储系统也立即失效,所有的数据,操作都将被删除。 这样,保证了一些特定操作不在系统中留下任何痕迹,即所有的操作都是在一个虚拟的存储系统上完成,但是用户态是感知不到这一点的,看起来仍像是在真实分区上一样。而只要关闭系统,那所有的历史纪录就都丢失了。 这个框架怎么实现? Deep Freeze可以做到,但是没有源代码。 不清楚机制 求救! |
|
最新喜欢:![]() |
沙发#
发布于:2005-02-22 14:00
写个磁盘过滤驱动,过滤所有读写操作,将这些操作定向到未使用的扇区中
|
|
板凳#
发布于:2005-02-22 14:40
tooflat你做过类似的工作码?我对这个也很高兴去,能不能详细的说说,谢谢。
|
|
|
地板#
发布于:2005-02-22 17:14
tooflat你做过类似的工作码?我对这个也很高兴去,能不能详细的说说,谢谢。 写个磁盘过滤驱动,对每次读写操作都作重定向, 比如我们要对C盘保护,首先我们分析磁盘数据,获得哪些扇区是文件系统已经占用的信息(需要知道该分区的类型,再根据分区类型分析磁盘数据,我以前做的支持fat和ntfs),记录下来,比如1,3,5扇区被文件系统占用,那么当文件系统写1扇区的时候,我们把数据写到2扇区,并记录这种影射关系,然后操作系统读1扇区的数据的时候,我们把操作定向到2扇区,如果操作系统写2扇区,那就把操作重定向到其他扇区,就可以了。 为了性能和占用的内存,你可以将扇区分组,比如32个扇区为一组,对组进行影射 |
|
地下室#
发布于:2005-02-22 20:50
哪里有类似的代码可供学习呢?
|
|
5楼#
发布于:2005-02-22 22:53
哪里有类似的代码可供学习呢? |
|
|
6楼#
发布于:2005-02-23 10:35
我也有与搂主相同的的问题.如楼上所说,是否先将磁盘所用内容进行镜像备份?
|
|
7楼#
发布于:2005-02-23 11:46
是啊
怎么镜像呢? 要保护原有系统,但也要保证原有系统的文件可被访问,只是在退出的时候才恢复原状。 而在退出之前,对所有的文件访问一切照常,这个怎么做到? 好像仅仅依靠捕获转向是不够的 |
|
8楼#
发布于:2005-02-23 12:47
是啊 捕获转向足够满足你的要求了, 因为你把所有的写操作都转向了,所以磁盘上原有的数据不会被破坏 |
|
9楼#
发布于:2005-02-23 15:13
但是我要打开原来的文件呢?
比如说windows\\system32\\driver\\etc\\hosts文件 第一次打开,转向了,那岂不是找不到这个文件了? |
|
10楼#
发布于:2005-02-23 18:01
但是我要打开原来的文件呢? 怎么会找不到? 如果你修改了源扇区,就把该操作转向到其他扇区(映射扇区), 然后每次读源扇区的时候,你都要从映射扇区读啊 |
|
11楼#
发布于:2005-02-23 21:32
第一次读源扇区呢?
怎么从映射扇区里面读? |
|
12楼#
发布于:2005-02-24 09:14
第一次读源扇区呢? 第一次当然要从源扇区读,总之你要确保你读到的数据是最新的数据 如果数据没有修改,那当然读源扇区了 |
|
13楼#
发布于:2005-02-25 11:32
是在IRP_MJ_READ IRP_MJ_WRITE中重定向吗?
|
|
14楼#
发布于:2005-02-25 12:04
是在IRP_MJ_READ IRP_MJ_WRITE中重定向吗? 是 |
|
15楼#
发布于:2005-02-25 14:30
请问呢如何获知是哪一个分区呢?
是c: 还是 d: 如何获知哪一个扇区呢? |
|
16楼#
发布于:2005-02-25 14:49
请问呢如何获知是哪一个分区呢? 盘符是可以改变的,所以通过盘符来判断没有意义 获知是哪个分区,可以分析分区链表,当然,这只是其中一种方法 |
|
17楼#
发布于:2005-02-26 19:07
请问READ/Write IRP或当前stack的参数中是否含有磁盘位置(如扇区)信息?
|
|
18楼#
发布于:2005-02-27 13:03
请问READ/Write IRP或当前stack的参数中是否含有磁盘位置(如扇区)信息? 当然 |
|
19楼#
发布于:2005-03-01 10:40
请参考致定贴子里面提供的信息
|
|