web-dev-qa-db-ja.com

JPEGファイル内の隠しファイルを検索/検出する方法は?

画像ファイル内に他のファイルが隠されているかどうかを検出するための良い方法を見つけようとしていますか?

関連リンク:

5
kenorb

シンプルなメソッド

ImageMagick/convertツールによるメソッド

ImageMagickコマンドツールconvertを使用して、元のファイルと変換されたファイルの違いを見つけます。例えば。

$ convert original.jpg converted.jpg  # this is an ImageMagick command
$ ls -l original.jpg converted.jpg
  667228 original.jpg
  648515 converted.jpg

次に、バイナリファイルを比較できます。以下を参照してください。 Linuxでバイナリファイルを比較するにはどうすればよいですか

文字列によるメソッド

stringsを介して不審なコンテンツを探します。いくつかの隠しファイル、メッセージ、またはコンテンツを示す可能性があるファイル内の印刷可能な文字列を印刷します。例えば。:

$ strings -10 image.jpg

画像の例: Cicada 3301を開始した非表示のメッセージを含む元の画像


高度な方法

hexdumpによるメソッド

すべてのJPEGファイルは、バイナリの値が0xFFD8のSOI(画像の開始)で始まり、バイナリの値が0xFFD9のEOIマーカー(画像の終わり)で終了します。

したがって、EOIマーカーの後に余分なコンテンツがないか確認してみてください。例では:

hexdump -C image.jpg  | less +/"ff d9"
hexdump -C image.jpg  | more +/"ff d9"

xddによるメソッド

xddコマンドラインベースのツールとtrおよびsedを使用して、EOIマーカーの後にコンテンツを印刷します。

例では:

xxd -c1 -p image.jpg | tr "\n" " " | sed -n -e 's/.*\( ff d9 \)\(.*\).*/\2/p' | xxd -r -p

続きを読む: バイナリファイルの一部をダンプする方法 SE


関連:

15
kenorb