首页
社区
课程
招聘
关于diskflt的单点还原系统原理的一点不明白
发表于: 2015-7-28 07:57 4704

关于diskflt的单点还原系统原理的一点不明白

2015-7-28 07:57
4704
看雪的各位大神你们好,我最近在研究网上来流传的那份diskflt的单点还原的代码,想把驱动代码自己重新写一份,锻炼一下。由于资质比较愚钝,花了4,5天时间才搞懂了大致整个流程,还有他最基本的bitmap算法,只有一点不太清楚,想来求证一下各位大神:
在寒江独钓中也有类似的代码,只不过他是采用的稀疏文件进行的重定向,而在diskflt中,没有使用稀疏文件,据我的研究发现,他通过bitmap的偏移计算,得到重定向的地址后,直接自己构建了一个irp下发了,也就是说,他交给底层设备去把数据写到了硬盘上。但是这些数据是通过bitmap进行关联寻址的,虽然重启计算机以后,虽然bitmap各位清0了,但是数据既然写道了硬盘上,不是还存在于硬盘上么?

我是这么理解的,由于水平有限,请各位误喷,就是我们重启后打开比如D盘(这个盘我们进行了保护),ntfs会根据相关信息列举分区保存的文件,由于我们在上次开机写入文件的地址被重定向了,所以上次开机真正要写入的地址的数据是空的,所以ntfs根据真正的地址找不到上次那个文件,而真正被写入数据的重定向的数据,由于在ntfs中没有他相关的文件信息,所以,这部分空间虽然是有数据的,但是ntfs还是认为他是空闲的,下次有数据是可以直接覆盖的。。仅是鄙人遇见,坐等大神高论

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1040
活跃值: (1313)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
本来就是啊,源码那里寻找空闲的簇,然后写进去,开机之后自然就是无效数据了
2015-7-28 10:16
0
雪    币: 13
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是我理解的这样吗 好的谢谢你 开始动手
2015-7-28 16:55
0
游客
登录 | 注册 方可回帖
返回
//