Skip to content

2.1 圖片隱寫術

學習目標

  • 了解圖片隱寫術三板斧概念
  • 學習使用 strings 工具與觀念
  • 學習使用 File Hexadecimal Editor 與觀念
  • 學習使用 StegOnline 工具與觀念
  • 學習使用 binwalk 工具與觀念
  • 學習使用 Aperi'Solve 打天下(誤)

圖片隱寫三板斧

在圖片隱寫術當中,流傳著一個「三板斧」的概念,每一板斧都對應著不同的工具,三板斧分別對應的工具如下,工具的詳細教學將在文章後面一一進行介紹:

  1. 第一板斧:010 Editor、strings
  2. 第二板斧:StegOnline
  3. 第三板斧:binwalk

第一板斧:strings

對於一些檔案,可使用 Linux 內建的 strings 顯示出檔案中的所有可視字元。在打 CTF 時,通常會搭配 grep 查找一起使用,範例指令如下:

bash
strings image.png

第一板斧:File Hexadecimal Editor

「File Hexadecimal Editor」如其名,就是透過 16 進位的方式查看及編輯檔案,線上工具例如 Hexed.it;線下軟體則有 010 Editor、Winhex、HxD 等等。

在 CTF 中,經常搭配檔案標頭的說明進行修復,例如:對於 PNG 圖檔,可參考維基百科的說明

第二板斧:StegOnline

為了將圖片加上浮水印,同時避免干擾圖片內容,可透過 LSB 隱藏浮水印或資料,例如:正藍色的 RGB 數值為 (0, 0, 255),但如果將浮水印用差一點點的藍色 (0, 0, 254),在視覺上不會有任何影響,此時就可以使用線上工具 StegOnline 的 LSB Half 功能看到浮水印。

第三板斧:binwalk

有些圖片的檔案很大,明顯超出照片的資料大小,這有可能是因為圖片的後面藏著其他檔案,此時就可以使用 Linux 內建的 binwalk 工具拆解檔案,範例指令如下:

bash
binwalk -E image.png

或也可使用 Aperi'Solve 執行 binwalk 及其他功能。