画像.jpgのバイナリに文字を隠して友人に送ってみた


環境

  • Ubuntu 20.04 LTS
  • Ghex 3.18.4
  • Pinta 1.6

はじめに

いわゆるステガノグラフィー。

大まかな流れ

  1. 画像を用意する
  2. 隠したい文字をASCIIに従って16進数にする
  3. 変換した文字をバイナリエディタで画像に埋め込む

jpegの構造について簡単に

  1. SOI 16進数でFFD8
  2. セグメント
  3. 実データ
  4. EOI 16進数でFFD9

やってみる

今回は、実データの部分に文字を隠します。
今回使う文字
steganography{hogehoge strhng}
ミスってstringstrhngになってしまいました。
これをASCIIに従って16進数で表示すると
73 74 65 67 61 6e 6f 67 72 61 70 68 79 7b 68 6f 67 65 68 6f 67 65 20 73 74 72 68 6e 67 7d
用意した画像ファイルをバイナリエディタで開きます。

そしてたとえばこの部分を

こうします。

この後友人に送り、無事読んでもらえました。

おわりに

今後は色々なメディアファイルのデータ構造を勉強してみようかなと思ったり思ってなかったりしてます。