2012-02-10 95 views
0

我試圖從應用程序中反向設計一個文件以瞭解更多關於它存儲在我身上的數據。基於名稱,它看起來是XML數據,但它顯然是以二進制或加密方式保存的。我認爲它可能是某種形式的.Net(或其他)序列化,並試圖以這種方式進行解碼。但是,沒有愛。十六進制檢查也沒有提供任何線索。試圖確定文件是否僅加密了二進制

也許有更多'skilz'的人可以給我一些見解。 Here is the file

+0

爲什麼會有人以二進制格式保存xml數據?使用XML的想法是因爲它們可讀性爲 – Cratylus 2012-02-10 20:40:43

+0

這不是一個編程問題。 – 2012-02-11 16:50:12

+0

我很欣賞這種迴應。是的,這實際上是一個編程問題。我正在尋找從哪裏開始,編寫可以打開,編輯和保存文件的應用程序。但是,確定格式是第一步。如果它被加密,我不能這樣做。如果它是某種標準的序列化,我可能會做到這一點。 – Bernesto 2012-02-11 20:49:40

回答

1

投票下來並回答:該文件的大小正好是N * 16字節,根據我所見,不包含任何重複,並且它似乎被隨機字節填充。第一個字節看起來完全是隨機的,暗示這不是一個簡單的協議。

這可能暗示該文件是AES CBC加密的。 DESede(或8/16塊大小的密碼)也可以部署。沒有鑰匙(如果有的話),這一切都不會幫助你(如果是的話,我不會回答你)。

+0

謝謝你的迴應。還有一些其他的「xml」文件。當通過HEX編輯器查看它們時,前幾個字節與這些文件中的一些相同。現在我可以想象這是一種頭文件數據,或者是因爲文件以相同的數據開頭,並且被加密的方式會導致它的佈局相同。 – Bernesto 2012-02-11 20:57:33

+0

如果有更多的16或8個字節塊重複,那麼這是ECB模式加密的一個確定標誌,如果它只在文件的開頭,它是具有恆定IV值(最可能爲零)的CBC加密。這是一個加密弱點,因爲它提供了關於純文本的信息,但不能用它來破解純文本或密鑰。 – 2012-02-11 21:03:46

+0

謝謝貓頭鷹。但是,我不確定我是否完全明白你的迴應。 – Bernesto 2012-02-11 21:12:44

0

第一個文件的熵高於7.7可能表示加密。文件的前28個字節(320位)匹配。這有可能是關鍵,編碼數據從28h開始?

+0

不太確定。所有的文件或者以這32位開始: A7 29 D0 83 BC 9A B4 7C 5D D1 D3 A3 E1 7A 57 64 87 C6 C6 A6 B5 AB 6C C1 EA 19 D6 47 2E 8E FE AA 20 或者這些32位: 04 94 02 6F 5D 42 0F 62 EF 4C FC 9B 8E D5 E1 CC 13 27 C6 1E DB 2E 87 B4 86 AF 34 C8 0C 98 EE 0D 這有點奇怪。假定命名約定,並且它確實是一個xml文件。文件中的第一行很可能是: 「<?xml version =」1.0「encoding =」ISO-8859-1「?>」 出於好奇,您是如何確定熵的? – Bernesto 2012-02-12 00:50:15

+0

我認爲這個文件更有可能是CBC加密的,而且您確實正在查看XML標頭「標籤」。但將它作爲關鍵並不會有什麼壞處,因此也有一些USB密鑰供應商將密鑰作爲密鑰文件。更可能的是使用硬編碼密鑰。 – 2012-02-12 01:47:22

+0

您描述的XML標記比匹配的大小(28h)長一點(2bh)。然而,尺寸非常接近,所以如果前28個字節代表XML標籤,它似乎是一個簡單或弱加密 - 是你可以想象的東西?在這種情況下,我希望文件末尾的字節匹配,因爲關閉的XML標籤應該是相同的,但事實並非如此。 – Attila 2012-02-12 09:27:32

相關問題