0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PicoCTF2024 endianness-v2 [Forensics]

Last updated at Posted at 2024-08-18

PicoCTF2024 endianness-v2の解き方

初めてWriteUPみたいなものを書きます:fist:

問題

Here's a file that was recovered from a 32-bits system that organized the bytes a weird way. We're not even sure what type of file it is.

問題へのリンク
https://play.picoctf.org/practice/challenge/415

この問題ではchallengefileというファイルが配布されます。

解き方

配布されるファイルの中身をVScodeのHexEditorを使って確認します。

VScodeで対象ファイルを16進エディターで開きます。
すると以下のような表示であることがわかります。

image.png

エンディアン

この問題のタイトルにも入っている「endianness」について復習します。
エンディアンとはメモリにデータを保存するときにどのように配置するかを規定するものです。
今回の問題では、32bitコンピュータについて触れているため4byteをどのように並べるかを定めています。
具体的には以下の通りです。

  • ビッグエンディアン
    0x12345678のデータを保存する場合には下位アドレスから12 34 56 78のように保存されます。
  • リトルエンディアン
    0x12345678のデータを保存する場合には下位アドレスから78 56 34 12として保存されます。

シグネチャ

シグネチャについて少し触れてみたいと思います。
今回のファイルの場合ファイルの先頭から

E0 FF D8 FF ...

のようになっています。
ここでいろいろなファイルの先頭がどのような構造について少しだけ書きます。
ほかのファイルについては各自調べてみるといいかもしれません。

zip  : 50 4B
png  : 89 50 4E 47
jpeg : FF D8 FF E0

ここで問題を振り返りましょう。
気づいた方もいるかもしれませんがこの問題で配布されたファイルの中身は先頭から
E0 FF D8 FFでリトルエンディアンとビックエンディアンを考えてその中身を変更すると
FF D8 FF E0になります。
これは、JPEGファイルのシグネチャと一致します:eyes:
そのため、この問題は4byteごとに反転してJPEGファイルを取得する問題ということがわかりました。

配布ファイルからJPEG画像を作る方法

今回は簡単にCyberChefというサイトを使って問題を解いていきたいと思います。

このサイトはBase64のでコードやエンコード、画像の詳細情報(Exif情報)の取得などができる便利サイトです。

Inputの"Open file as input"から今回配布されたchallengefileを選択します。
するとこのような画面になると思います。

image.png

ここからファイルのシグネチャを確認するためにTo Hexを検索し、画面中央のRecipeにドラッグします。するとOutPutがVScodeで確認したような文字が出てきます。
これを4byteずつ反転させたいので「Swap endianness」を検索、ドラッグしてData formatをHex,Word lengthを4 とすることで、4byteずつ反転しOutPut部分がJpegファイルのシグネチャと一致することがわかります。

ただ、これではフラグが何か確認することができません。このデータをJpegファイルとして保存することで確認することもできますが今回はCyberChef上で画像として表示させたいと思います。
そのために「Render Image」を検索、ドラッグします。
ただそのままだと、Invalid file typeとなってしまうのでRender ImageをRawからHexに変更することでOutPutでフラグを確認できます。
image.png

みなさんも実際にやってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?