2013-07-31 20 views
2

我最近獲得了一個文本文件,並告訴它可以將其轉換爲圖像。該文本文件看起來像這樣...將(.hex?)文件轉換爲可查看的圖像

0000000 d8ff e0ff 1000 464a 4649 0100 0001 0100 
0000010 0100 0000 e2ff a80c 4349 5f43 5250 464f 
0000020 4c49 0045 0101 0000 980c 7061 6c70 1002 
... 
000d320 8b4c 1b28 3bd4 0016 91e0 799e 34c1 4457 
000d330 7113 ee4d cd73 4945 63db d9ff   
000d33c 

從谷歌上搜索,我敢肯定,這是一個.hex文件(儘管許多我曾經在網上看到過不同的格式,所以我不是十六進制文件某些)。

當我搜索'將十六進制轉換爲圖像'時,像我一樣格式化的結果非常乾燥。

是否有人確定這是什麼類型的文件,以及如何將其轉換回可查看圖像?

感謝

回答

1

這看起來像一個JPEG文件,在文件.hex編碼。

我不習慣使用hex文件,但第7個數字看起來像是基本上是計數行。我會忽略它們,我相信你可以找到有關角色是什麼的文檔(如果有的話)。真正的數據字節是每行其餘部分編碼的內容。我寫了一個lightweight jpeg encoder。我進入源文件,看看我能在文件中看到的字節是否響起一個響鈴:

該文件以d8ff開頭,我寫的代碼是爲編碼jpeg編寫的,它通過編寫標識它的文件頭開始一個jpeg並編碼關於它的信息,例如它的大小,從寫入字節FFDB(參見this line,其中「SOI」代表「文件開始」)開始。

然後我們有e0ff 1000 464a 4649 0100 0001 ...和我的代碼寫到:FFE0 0010 4A46 4946 0001 0100(見line 127 and following),這是一個JFIF header標準的JPEG文件的下一個字節。

最後,文件的最後3個字節是d9ff,而jpec寫入FFD9作爲文件結束字節。

顯然,你的文件的編寫代碼不像我的代碼一樣(實際上它看起來像是middle-endian,之前我沒有真正看到過),但是你可以看到每個2字節的數據包(4個十六進制字符)在反轉這兩個字節的順序時是相同的!這顯然是一個JPEG編碼的圖像...

爲了看這是一個形象,我會嘗試:

  1. 簡單地剝離每一行的第7位和寫作其餘的字節爲二進制文件,如果這個十六進制文件的字節順序與你的機器上的一致,或者如果你的機器的字節順序適合,則剝離7個第一個數字並顛倒每個2字節的數據包的順序,並將它寫爲二進制文件我爲Jpec寫的那篇文章!

希望這會有所幫助!