You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从1996年左右的旧数据文件中解析二进制时间戳

解析1996年未知软件二进制时间戳的思路

背景信息

我手头有一个1996年左右未知软件生成的文件,里面包含大量时间戳和事件,但没有任何配套文档,也不清楚具体数据结构,只能读取事件内容,仅大致知晓日期范围。通过截图分析,整理出以下二进制序列与对应UTC+2时区时间的关联(注:二进制实际存储的可能是UTC时间09:00,显示时转换为UTC+2):

0000000100010000101011001111000110001111010001001010111100000000 = 13.06.2024 11:23:24
0000000100100000111001101111000110001111010001001010111100000000 = 13.06.2024 11:24:22
0000000100100000110100111111001010001111010001001010111100000000 = 13.06.2024 11:28:19
0000000100010000010011111111010010001111010001000100101100000000 = 13.06.2024 11:34:39

我已经尝试过对比字节差异、查找二进制模式、匹配Unix时间戳等方法,但都没有进展,希望有旧数据格式经验的人提供解析思路。

解析建议

  • 按字节拆分分析:把64位二进制拆成8个8位字节,转成十六进制后,对比相同时间维度下的字节变化。比如前两个字节00000001 00010000和00000001 00100000对应十进制1+16、1+32,可能是日期或年份的偏移编码(1996年前后的软件常以某基准年做偏移)。
  • 排查BCD编码:90年代软件普遍用BCD(二进制编码的十进制)存储日期时间,把二进制转十六进制后,看是否能对应日期、时、分、秒的十进制数字。比如秒数24的BCD是0x24,可以在二进制串中查找对应位段。
  • 验证基准时间点:旧软件常用的时间基准有DOS的1980年1月1日、Windows的1601年1月1日,或自定义基准(比如软件发布年份)。把已知时间转换成基准后的总秒数/分钟数,转二进制后和给定串对比。
  • 拆分时间字段:把时间拆成年、月、日、时、分、秒,逐一对应二进制中的固定位段。比如观察所有条目的最后16位,不同时间的该段值差异明显,可能对应时分秒的组合编码。
  • 调整字节序/位序:旧软件可能用大端或小端字节序,甚至位序反转。可以尝试把二进制串整体反转,或拆分字节后反转字节顺序,再匹配时间值。
  • 剔除固定标识位:观察所有二进制串的固定部分,比如开头00000001、中间1000111101000100、末尾00000000,这些可能是事件类型或其他非时间标识位,先剔除后分析剩余可变部分。

内容的提问来源于stack exchange,提问作者sebastian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:23:17