1
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?

picoCTF #Forensics - endianness-v2

Last updated at Posted at 2024-10-28

■問題
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. Download it here and see what you can get out of it

こちらは32ビットシステムから復元されたファイルです。このシステムは独特な方法でバイトを整理していたため、このファイルがどのような形式かも確かではありません。このファイルをダウンロードして、調べてみてください。

■解き方

①ファイルの内容を確認する。
image.png
image.png
exiftoolではJPEGというキーワードが出力された。
fileで確認するとdataと出力されたため、データがばらばらになっていることがわかる。
※dataの場合、ファイルの形式が不明、もしくは特定の形式として認識できないものを表す。

②endianness-v2という問題分を改めて確認する
エンディアンは、コンピュータがデータをメモリに格納する際のバイトの順序を指す。具体的には、ビッグエンディアンとリトルエンディアンの2つの形式がある。

ビッグエンディアン(Big Endian)
上位バイト(最も大きな値のバイト)を先に、下位バイトを後に格納する形式
16進数のデータ 0x1234 をメモリに格納する場合、ビッグエンディアンでは 12 34 の順になる。
ネットワークプロトコルや一部のアーキテクチャはビッグエンディアンを採用している。

リトルエンディアン(Little Endian)
下位バイトを先に、上位バイトを後に格納する形式
0x1234 は、リトルエンディアンでは 34 12 として格納される。
多くのPCアーキテクチャ(Intel x86、x86_64など)で使用される方式

③32ビットシステムでは4バイトが1つのまとまりで操作されるため、
4バイト単位でエンディアン変換を行ってみる
※CyberChefを使用
image.png
Inputにファイルをアップロードして
Opetationsから「To Hex」「Swap endianness」「Render Image」
をRecipeにドラッグする。
To Hexで16進数に変換させ、Swap endiannessで4バイト単位でエンディアンを並び替える。Remder Imageでフラグの画像を表示させる。

1
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
1
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?