閱讀某文章時提到有些老司機會把車票(?)隱藏在圖片(.jpg)中,覺得蠻有趣的,沒想過cat(concatenate)指令做這件事XD
因為JPEG的二進位檔為'0xFFD8'起始、'0xFFD9'結尾,'0xFFD8'代表SOI(Start of image),'0xFFD9'代表EOI(End of image)。即使將其他數據與其合併,圖片預覽程式在讀取二進位檔時遇到'0xFFD9'就會認為圖片已讀取完畢,因而無視後面的數據。
然後我在MacOS和Windows 10都試了試:
Unix-like
shell
$ cat test.jpg secret.zip > hide.jpg
1
Windows
shell
$ type test.jpg secret.zip > hide.jpg
1
合併後得到的檔案看起來依然是一張圖片,但其實和原圖比對,檔案大小是有增加的。 將副檔名改為.zip後解壓縮,就能得到被合併進去的隱藏檔案。
覺得很有趣所以紀錄一下。😄