关于NTFS文件系统中RUN的问题
在NTFS系统中,如果有多个RUN,第一个RUN的开始簇在后面RUN的开始簇的后面,这时如何按照确定第二个RUN的开始簇?例如:31 02 52 21 11 21 01 55 33 21 02 50 22,第二个RUN的开始簇如何确定? 31 02 52 21 11 21 01 55 33 21 02 50 2231中的1代表大小,3代表开始簇,那么后面一共有4位,02是大小,52 21 11是开始簇;那么这里一共有3个run :31 02 5221 11 ,21 01 55 33, 21 02 50 22. 谢谢你的解释,但我问的是第二个RUN的开始簇是如何计算的?不知你是否看过刘伟老师的《数据恢复技术深度揭秘》这本书,在本书的354页的一个例子中的RUN计算,是如何计算的?他书中的RUN是这样的“31 08 9B 10 03 21 08 77 CA 21 08 45 01 21 08 9B 03 21 10 F0 20 21 08 0E 05”6个RUN,第一个RUN的起始LCN是200859,而第二个RUN的LCN=200859-13705=187154,第三个RUN的LCN=187154+325=187479,第四个RUN的LCN=.........后面的没有问题,关键是第二个RUN计算中的13705是什么? nhqwsj 说是因为第二个RUN的77 CA是-13705所致,怎么能判断出是负数啊?只能在Winhex 的“数据解释器”中看出来吗?也就是如何判断是正数还是负数? 因为数据在硬盘中是补码二进制的形式存储的,比如原码是—7,那么它在硬盘中的存储就是11111001 我在你另外一个帖子中回复了,才看到你这个帖子是更早开的,还讨论起来了 回复 4# lzhongh
书本表格中的计算,其实全部都是把补码转为原码,进行相加 得出结果的。我就是这样理解的
因为正数转为原码,其实就是本身,所以不用另外计算补码而已
但是负数转为原码,就需要转换了,再进行相加计算。 回复 4# lzhongh
数据编辑器可以看出来,就是16bit那个。。。 一个都看不懂啊 哈哈~~ 问题很好,值得研究下
页:
[1]
2