ヘキサエディター

この記事をシェア

概要

ヘキサエディターとは、ファイルを16進数(Hex)の形式で表示するエディターのことです。
バイナリファイル を扱うため、バイナリエディターと呼ばれることもあります。

代表的なヘキサエディターは以下のとおりです。

  • Stirling
  • BZ (Binary Editor BZ)
  • 010 Editor

本記事では、Stirlingを例にヘキサエディターの利用方法を紹介します。

Stirlingでバイナリファイルを開いた画面

Stirlingでバイナリファイルを開いた画面

*1 テキスト形式ではなく、コンピューターが理解できる形式(0と1)で構成されたファイルのこと。実行形式ファイルや動画ファイルなどがこれに該当する。

マルウェア解析における利用方法

1.ファイル形式を判別する

ヘキサエディターを使用することで、ファイル形式の判別が可能です。
マルウェアは拡張子が偽装されていることがあります。ファイル先頭の数バイト(マジックナンバー)を見ることで、ファイル形式を判別することが可能です。以下の図ではマジックナンバーが4D 5A (MZ)であることから、このファイルがPE(主にWindowsで使用される形式)の実行ファイルであることが分かります。

Stirlingでマジックナンバーを表示した画面

Stirlingでマジックナンバーを表示した画面

■マジックナンバーの一例

ファイル形式 先頭バイト列 (HEX) 先頭バイト列 (UTF-8)
PE実行ファイル 4D 5A MZ
ELF実行ファイル 7F 45 4C 46 .ELF
BMPファイル 42 4D BM
PNGファイル 80 50 4E 47 .PNG
GIFファイル 47 49 46 38 GIF8
PDFファイル 25 50 44 46 2D %PDF-
ZIPファイル 50 4B PK
Microsoft Office文書(.docx等) 50 4B PK

2.プログラムを書き換える

マルウェアのバイト列を直接書き換えることでマルウェア解析妨害 解説で紹介しているさまざまな解析妨害を回避し、マルウェアを実行できるようになります。以下の例では解析妨害ルーチンにジャンプする命令コード(74 2A)を何も行わない命令コード(66 90)に書き換えることで、解析妨害ルーチンが実行されないようにしています。

Stirlingでプログラムを書き換えた画面

Stirlingでプログラムを書き換えた画面

3.バイナリファイルの全体構造を可視化する

一部のヘキサエディターには、バイナリファイルのバイト列を色分けして可視化できる機能が備わっています。(Stirlingでは設定 -> ビットイメージにチェック)
この機能によって、テキストデータ(スクリプトコード等)とバイナリデータ(コンパイルされたプログラムコードや画像データ等)をひと目で見分けることができます。
高度なマルウェアはステガノグラフィと呼ばれる技術を悪用して、画像等に悪性コードを隠蔽することがあります。ヘキサエディターを使うことで、隠されたプログラムコードの存在を発見できることがあります。

Stirlingでビットイメージを表示した画面

Stirlingでビットイメージを表示した画面

この記事をシェア
サイバーセキュリティ
情報局の最新情報を
チェック!