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?

バイナリ学習【備忘録】

Posted at

バイナリとは

バイナリ(binary)とは2進数のこと。
IT分野におけるファイルに保存されるデータや通信パケットはバイナリデータでやり取りされる。
00, 01, 10, 11....

バイナリデータであっても、ASCIIやUnicodeなどの文字コードに対応したデータのことをテキストデータという。

[例]
gennkidesuka → 67 65 6E 6E 6B 69 64 65 73 75 6B 61
botibotidesu62 → 6F 74 69 62 6F 74 69 64 65 73 75

ASCIIコード早見表

バイナリファイルの種類

  • 画像ファイル
  • オーディオファイル
  • 実行形式ファイル(ELF)←よく解析対象になる

ダンプ

データの解析や修復のために、ファイルやメモリの内容を出力すること。
バイナリファイルをダンプすることを、バイナリダンプ。
16進数が一般的。

コマンド

  • od(octral dump): バイナリファイルの内容を8進数や16進数でダンプする
  • hexdump
  • xxd

テストコード

print('Hello World')

ターミナル

% python3 test.py
Hello World

% od -Ax -tx1 test.py | head -1  // odで先頭の16バイトを16進数でダンプする
0000000    70  72  69  6e  74  28  27  48  65  6c  6c  6f  20  57  6f  72

表層解析

バイナリ解析

バイナリファイルのうち、主に実行形式ファイルを対象とした解析すること。

バイナリ解析の手法

手法は以下の3つ。

  • 表層解析
  • 動的解析
  • 静的解析
    取得できる情報量は静的解析が最も多高い。

表層解析

バイナリ解析で最初にやる解析。
デジタルフォレンジックの証拠収集にも使われる。
さくっと時間をかけずに調べる。

得られる情報は以下の通り。

  • ファイルの名前
  • ファイルのフォーマット
  • ファイルのメタ情報

使用するコマンド

コマンド 機能
file ファイルフォーマットの出力
strings バイナリファイルないに含まれる文字列を抜き出す
grep, egrrep パターン文字列を含む行を抽出して出力
exitfool 画像、音声、動画、PDFなど、様々なファイル形式のメタデータを読み書き、編集する
binwalk 圧縮、アーカイブ、パックによってファイル内に埋め込まれているファイルを確認したり取り出したりする
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?