介绍
我正在尝试对包含短信消息的二进制数据文件进行逆向工程。
该文件名为 ems.idx4,大约在 5 年前使用名为 LG PhoneManager 的软件创建,作为 LG 手机的短信消息备份存档。
我不知道使用哪种语言编写 LG PhoneManager,但在二进制文件中,我读取了诸如“CObTree”、“CFolder”、“CMessage”之类的字符串:也许这条线索没有任何意义,也许它表明 Cobol/.net/无论使用什么语言。
问题
我解码了二进制文件的整个结构,这很简单。
我无法解码的唯一部分是单个消息的日期和时间。
我确定了日期和时间被编码的二进制部分,我得到了一些解码的例子(感谢消息的内容)。
十六进制的二进制数据:
[0x10] D0 74 C4 FE 3F 42 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2] is 2007/12/25 some time after 23:58 GMT+1
[0x10] 2B 25 CA 19 2F 43 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2] is 2008/01/02 some time after 10:48 GMT+1
[0x10] AA C0 2C 6E 35 43 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2] is 2008/01/02 some time after 16:03 GMT+1
[0x10] EE 04 71 F2 B6 43 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2] is 2008/01/06 some time after 14:31 GMT+1
[0x10] 60 2C F9 45 4E 4F E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2] is 2008/04/08 some time after 10:32 GMT+1
[0x10] 5D 84 01 14 74 64 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2] is 2008/11/11 some time after 14:53 GMT+1
其中 [0xN] 表示 N 个零的序列。
任何想法?
更新
使用这个工具:http
://www.digital-detective.co.uk/freetools/decode.asp
我意识到它是 Windows 64 位 OLE 日期/时间格式。
根据该工具:
D0 74 C4 FE 3F 42 E3 40 means exactly 26/12/2007 00:59
知道这个 Windows 64 位 OLE 日期/时间格式背后的数学原理是什么吗?