2008-12-10 58 views
1

我已經能夠將原始數據從其他無法訪問的USB驅動器複製到大約250MB的單片文件。在那個字節blob中的某個地方大約有40個Word文檔。如何從USB設備恢復的數據中提取Word文檔?

  1. 在哪裏可以找到有關Word文檔的內部結構的文件,這樣我可以解析字節流,認識到其中的Word文檔的開始和結束,並提取一個副本?

  2. 是否有任何特定於此任務的編程語言的庫?

  3. 任何人都可以提出一個已經存在的軟件解決方案來解決這個問題嗎?

回答

5

兩種方法:

可以在linux中將文件掛載爲卷。如果你的二進制blob沒有被破壞,你可能會分解文件系統來找出你的文件所在的位置。是(是)它是FAT分區還是NTFS?

如果不行,我會尋找this string of bytes

D0 CF 11 E0 A1 B1 1A E1 

這些「魔法字節」辦公文檔文件的簽名。它們可能會隨機出現在其他數據中,但這只是一個開始。如果文件碎片化,您將遇到MAJOR問題。

此外,嘗試在Word中按原樣重新創建文檔片斷,將其保存到文件並提取塊以在blob中進行搜索(使用grep二進制文件或其他)。如果你有來自文件所有部分的信息,你應該能夠解碼它們所在的BLOB中的WHERE。將它重新放回到一個可用的DOC二進制文件看起來很遙遠,但恢復文本的其餘部分不應該是不可能的。

2

Apache POI項目有一個庫,用於讀寫各種MS Office文檔。如果這些文件位於新的XML基礎格式OOXML中,那麼您將在XML壓縮時查找壓縮文件的開頭。

+0

我很難讀取.docx文件作爲zip文件,所以不要指望太多。 OTOH我在那裏遇到很多其他問題,如64mg NaCl – BCS 2008-12-10 07:17:53

相關問題