INTRO
我正在嘗試對包含sms消息的二進制數據文件進行反向工程。
該文件名為ems.idx4,並使用名為的軟件創建LG PhoneManager大約5年前作為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]是23:58 GMT + 1 [0x10] 2B 25 CA 19 2之後的2007/12/25 F 43 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2]是10:48 GMT + 1 [0x10] AA C0 2C 6E 35 43 E3 40 F1 64 [ 0x7] 2 [0x13] 1 [0x6] 6C [0x2]是2008年3月16日格林尼治標準時間+1 [0x10] EE 04 71 F2 B6 43 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2]是2008年1月4日格林尼治標準時間14:31之後的某個時間+1 [0x10] 60 2C F9 45 4E 4F E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2]在10:32 GMT + 1 [0x10] 5D 84 01 14 74 64 E3 40 F1 64 [0x7] 2 [0x13] 1 [0x6] 6C [0x2]之後的2008/04/08某個時間是2008/11/11 14:53 GMT + 1之後的時間
,其中[0xN]表示由N個零組成的序列。
有什麼想法嗎?
更新
使用此工具: http://www.digital-detective.co.uk/freetools/decode.asp
我意識到這是Windows OLE日期/時間格式為64位。
根據該工具:
D0 74 C4 FE 3F 42 E3 40表示26/12/2007 00:59
您知道這種Windows 64位OLE日期/時間格式背後的數學原理是什麼嗎?