如何在二进制文件中查找指定的epoch时间戳1713733973?
二进制文件中查找目标时间戳的解决建议
- 检查字节序:你的epoch时间
1713733973的十六进制为0x66261855,二进制文件通常用小端序存储整数,对应十六进制字节序列是55 18 26 66,尝试在十六进制编辑器中搜索这个序列(注意空格或无空格的格式,不同编辑器要求不同),同时也别遗漏大端序的66 26 18 55。 - 尝试64位时间戳:如果文件用64位存储Unix时间戳,对应十六进制大端是
00 00 00 00 66 26 18 55,小端是55 18 26 66 00 00 00 00,直接搜索这两种字节序列。 - 扩展时间精度:很多系统会用毫秒/微秒级时间戳,计算对应值后搜索:
- 毫秒级epoch:
1713733973000,十六进制大端00 01 96 62 61 85 50,小端50 85 61 62 96 01 00 - 微秒级epoch:
1713733973000000,十六进制大端00 00 00 19 66 26 18 55,小端55 18 26 66 19 00 00 00
- 毫秒级epoch:
- 尝试Windows FILETIME格式:Windows系统常用从1601年1月1日起的100纳秒间隔计数,目标UTC时间对应的FILETIME值为
133782079730000000,十六进制为0x1DA8B5D355D2000,转换为小端字节序列00 20 D2 55 D3 B5 A8 1D,大端1D A8 B5 D3 55 D2 20 00,搜索这两种序列。 - 覆盖更多字符串格式:除了你试过的,还要尝试这些常见字符串变种:
- ISO标准格式:
2024-04-21T09:12:53Z、2024-04-22T07:12:53 - 无分隔符格式:
20240421091253、20240422071253 - 中文本地格式:
2024年4月22日 7:12:53、2024/04/22 07:12:53
- ISO标准格式:
- 用命令行工具辅助搜索:如果图形化编辑器有局限,试试命令行组合:
- 用
xxd将二进制文件转成十六进制文本,再用grep搜索:# 搜索小端序32位时间戳 xxd your_file.bin | grep -i '55182666' # 搜索大端序32位时间戳 xxd your_file.bin | grep -i '66261855'
- 用
- 检查浮点数存储:部分系统会把时间戳存为浮点数(比如double类型),
1713733973对应的double十六进制大端是41 D6 26 61 18 55 00 00,小端是00 00 55 18 61 26 D6 41,尝试搜索这两个序列。
内容的提问来源于stack exchange,提问作者Gary A
相关产品推荐
相关产品推荐

