2015-11-17 22 views
2

我目前正在調查一個文件的存檔期間崩潰,這個文件據說是通過NSKeyedArchiver存儲的。崩潰日誌包含該文件的前8個字節的四重奏(我只包括下面的前2個)。NSKeyedArchiver使用什麼字符編碼或文件格式?

Fatal Exception: NSInvalidArgumentException 
*** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0xffffffa6, 0xffffff9e, ...) 

我一直無法使用ASCII,Base64,UTF8或UTF16將這些字節解碼爲任何有用內容。有誰知道什麼樣的文件格式和/或字符編碼NSKeyedArchiver使用或如何我可以解碼這些字節到人類可讀的東西?

+0

也許你不能將它解碼成任何明智的事實,正是因爲它被破壞了。 – Avi

+0

@Avi是的,這可能是正確的。這很奇怪,文件寫入的唯一方法是通過「NSKeyedArchiver」 - 至少據我所知。因此,我希望有一種方法可以將檔案手動解碼爲人類可讀的內容。 – hennes

+0

它可能是一個二元plist。 – Avi

回答

2

鍵控檔案以二進制形式存儲。您可以使用命令行實用程序plutil來打印,驗證或操作內容。

+0

謝謝。不幸的是,'plutil'命令似乎不能從文件的開頭生成一個可讀的格式。由於崩潰日誌來自Fabric,因此我只有前幾個字節。 – hennes

+0

這真的說它只是腐敗,因此崩潰。可以肯定的是一種奇怪的情況。 – Avi

+0

自從我詢問文件格式後,我會給你接受的答案。在這種情況下,'plutil'不能幫助我。不管怎麼說,還是要謝謝你。 – hennes

相關問題