Windows时间戳的计算

一、实验目的

掌握Windows中FileTime时间戳的手工解析方法,利用WinHex或X-Ways等十六进制编辑器进行手工取证,把Windows中$MFT文件里记载的十六进制时间转化为“年月日时分秒”的可读时间,加深对于时间戳的理解。

二、实验环境

工具软件:WinHex V20.0/X-Ways V20.2 SR10

三、实验内容(实验步骤、测试数据等)

步骤 1

启动WinHex(使用X-Ways的操作相类似),工具,打开磁盘,选择C盘

步骤 2

查看,显示,目录浏览器

找到$MFT文件

步骤 3

$MFT文件十六进制的第六行到第七行依次是四个File Time时间戳

如图,50 BF 66 1F B9 B2 D6 01

步骤 4

把该小端序十六进制转换为大端序十六进制

小端序:50 BF 66 1F B9 B2 D6 01

大端序:01 D6 B2 B9 1F 66 BF 50

步骤 5

把十六进制的大端序转换为十进制

十六进制:01 D6 B2 B9 1F 66 BF 50

打开百度搜索在线进制转换,把十六进制转换为十进制

注意:在网页上的在线进制转换时,十六进制之间不能有空格,空格会对网页的在线进制转换产生影响。空格对Windows自带计算器无影响,可以直接复制黏贴

网页在线进制转换结果:132489747219529562,如图

用Windows自带计算器验证十六进制转换十进制结果进行验证,发现网页在线进制转换的结果异常

计算器DEC为十进制的转换结果:132489747219529552,如图

网页在线进制转换结果倒数第二位为6,Windows自带计算器转换结果倒数第二位为5

暂时选择Windows自带计算器的结果

十进制:132489747219529552

步骤 6

记录的时间间隔为100纳秒,即10^-7秒

将132489747219529552乘以10^-7,等于13248974721.9529552

约等于13248974722(四舍五入到个位,进一)

步骤 7

1601-01-01 00:00到2020-01-01 00:00的时间为153036天,即153036*24*60*60=13222310400秒

13248974722-13222310400=26664322秒

26664322/60/60/24≈308.614837963天

2020年一到十二月的天数分别是:31,29,31,30,31,30,31,31,30,31,30,31

308.61-31-29-31-30-31-30-31-31-31-30=3.61

所以时间在11月4日

24*0.614837963=14.756111112

60*0.756111112=45.36666672

60*0.36666672=22.0000032

所以,时间为2020年11月4日14:45:22

由于时间戳时间是格林威治时间,与东八区北京时间相差8小时

时间应加上八小时

最终时间为2020年11月4日 22:45:22

步骤 8

验证

实际时间:2022/11/04 22:45:21

计算时间:2022/11/04 22:45:22

计算时间比实际时间多1秒,是步骤6对小数四舍五入的影响,在误差允许范围内

五、遇到的问题及解决方法

问题一:小端序与大端序辨析

小端序:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端

大端序:符合人类正常阅读习惯的顺序,与小端序相反

问题二:Windows自带计算器与在线进制转换的进制转换结果不同

在线进制转换器十六进制换算为十进制与电脑计算器十六进制换算为十进制的计算结果有出入

Windows自带计算器进制转换结果

网页在线进制转换结果

测试了多组十六进制转十进制数据转换,都存在同样问题,也是倒数第二位不同

通过计算得出,网页在线进制转换的进制转换结果是错误的

若要保证进制转换的正确性,建议使用Windows自带计算器进行进制转换

问题三:Windows从1601年开始计时的原因

猜你喜欢

转载自blog.csdn.net/m0_59302403/article/details/129764840
今日推荐