能力值:
( LV10,RANK:170 )
|
-
-
2 楼
这东西肯定不错,先下来看看。
|
能力值:
( LV12,RANK:450 )
|
-
-
3 楼
哎,晚了一步,本来我也想发一个的……感谢分享~
|
能力值:
( LV10,RANK:170 )
|
-
-
4 楼
这东西肯定不错, 收藏一份.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
http://www.ntfs.com/
有关于ntfs,fat,winfs的资料,值得学习
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
感谢分享,好好学习一下!
|
能力值:
( LV6,RANK:90 )
|
-
-
7 楼
试了一下,貌似不能解析完所有文件,郁闷
|
能力值:
( LV8,RANK:130 )
|
-
-
8 楼
解析有问题
没有处理USA
套用某个牛人的话:总有一天会出错的
|
能力值:
( LV12,RANK:420 )
|
-
-
9 楼
USA很重要啊~没处理USA的根本没法看吧
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
USA中的USN标记了写入磁盘的次数.
若没有处理,读的时候没问题, 当有数据写入磁盘时就会出现某些问题.
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
所以 读写操作,都得更新USA...
|
能力值:
( LV8,RANK:130 )
|
-
-
12 楼
读的时候要回填的
|
能力值:
( LV6,RANK:90 )
|
-
-
13 楼
楼主做的很不错啊,能够拿出来分享就比其他人做的好,谢谢你的代码,省了我不少事,对了,你的RunCount没有用上,需要加个循环,把连续的几个簇都读出来,才能解析完所有的INDX文件,试了一下,加上之后就可以找到盘上的所有文件了。
加油!期待你的MFC版
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
感谢分享,好好学习一下!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
不错的东西,收下了,谢谢楼主
|
能力值:
( LV3,RANK:30 )
|
-
-
16 楼
学习,支持,然后下载。reactos和windows兼容,确实不错
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
呵呵,辛苦楼主,支持
以前为了在realmode上完成ntfs文件建立,费了不少劲,资料也少.被B+树弄得头晕脑涨的
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
学习下。!!!!!!!!!!1
|
能力值:
( LV9,RANK:170 )
|
-
-
19 楼
果然NT4的源代码不错
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
USA啊USA
|
能力值:
( LV3,RANK:20 )
|
-
-
21 楼
感谢了,下载看看
|
能力值:
( LV4,RANK:50 )
|
-
-
22 楼
顶
希望有更多关于文件系统解析的相关资料
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
楼主的有一个比较大的逻辑错误,就是这小段代码:
//
// 循环分析FileRecord,采用递归
// 接下来是计算FileRecord的位置
// 一个MFT记录占两个扇区一个扇区512字节
//
if ( szFileName[0] != '.' )
{
LARGE_INTEGER ulFileRecord;
ulFileRecord.QuadPart = m_FirstMFTLocation.QuadPart + \
(((pIndexEntry->Form.FileReference.SegmentNumberHighPart << 16) + \
pIndexEntry->Form.FileReference.SegmentNumberLowPart ) * 2 * 512 );
其实你这段代码就是根据文件记录号来寻找文件记录的位置,对吧?在我的电脑有的文件解析不到,但是WinHex却能解析的很正确.
我的系统是XP SP3,C盘有20G(系统盘),我在system32目录下建了一个扩展名为.txt文件,文件数据只有9个字节,我调试你的程序时得到的文件记录号是0x94C6,我C盘的第一个文件记录的位置在:0x8EBD2000如果按照你的上面代码来计算的话,那么文件记录的位置应该在:0x94C6*1024+0x8EBD2000=0x91103800的地方(pIndexEntry->Form.FileReference.SegmentNumberHighPart << 16这个表达是在我调试时都是0),但是WinHex解析的位置却在0x9B008800的地方,我在你程序计算得到的位置只找一乱七八糟的数据(反正不是文件记录,因为没找到FILE的文件记录的标志).好象所有的文件记录在磁盘上并不是连续存储的,如果这样的话,你的程序就不能正确的工作......其实,开始你的程序工作的都很出色,从根目录解析到Windows目录,再解析system32目录都没有错,就是解析到我创建的那个文件时却出错了.在我电脑上,从0x94C6之后的文件记录所代表的文件,你的程序一个也没解析出来.
当然我并没有任何谴责楼主的意思,楼主能拿出来让大家学习说明楼主很有共享精神,象我这样的菜鸟是十分感谢的,我只是希望大家看我的帖子之后能找到一个正确的方法来解析文件记录的位置.
希望大家看到我的帖子之后能讨论一下..........
|