辞書へ戻る概念の一覧

静的解析

せいてきかいせき概念

プログラムを一切実行せずに、ファイルそのものを分解・可視化して内部の構造やロジックを読み解く手法。逆アセンブラやデコンパイラGhidra・IDAなど)で機械語を読む。防御機構のない古いソフトはこれだけで多くの情報が得られ、リバースエンジニアリングの入口になる。

概要

プログラムを一切実行せずに、ファイルそのものを分解・可視化して内部の構造やロジックを読み解く手法。逆アセンブラやデコンパイラGhidra・IDAなど)で機械語を読み解く。バイナリエディタで直接ファイルの中身を覗くのも、広い意味では静的解析の一端になる。

種類・系譜

静的解析の代表ツールは2つ。NSAが開発し2019年にオープンソース公開されたGhidraと、ベルギーのHex-Rays社が開発する商用ツールIDA(高機能な有料版「IDA Pro」と無料版「IDA Free」がある)。両者はアーキテクチャの対応などに違いはあるが、どちらを使っても大差はないとされる。

現在

解析の一般的な流れは静的解析→動的解析で、暗号化・難読化などの防御機構がなければ静的解析だけで多くの情報が得られる。防御機構が施されていないことが多い古いソフトウェアやレトロゲームは、この意味で静的解析に向いた対象になっている。

分野解析
代表ツールGhidra・IDA・バイナリエディタ

関連項目

  • リバースエンジニアリング完成した製品やプログラムを分解・解析して、その仕組みや設計を読み解く行為。ソフトウェアでは逆アセンブルなどで内部の動きを追う。古いソフトやゲームの「痕跡」を読む作業の中核であり、この営みの最大の武器。
  • 動的解析実際に動いているプログラムの挙動を追いかけて仕組みを解き明かす手法。デバッガでCPUのレジスタやメモリを1ステップずつ追う、システムコールやネットワーク通信を記録するなど。暗号化・難読化で静的解析が阻まれる場合の次の一手になる。
  • GhidraアメリカのNSA(国家安全保障局)が長年自社開発し、2019年にオープンソースとして一般公開したリバースエンジニアリングツール。コンパイル済みの実行ファイルを逆アセンブル・逆コンパイルし、機械語の塊からプログラムの構造を読み解ける。無料でありながら商用のIDAに匹敵する機能を持ち、静的解析の定番として一気に普及した。
  • IDA(IDA Pro)ベルギーのHex-Rays社が開発・販売する、商用リバースエンジニアリングの業界標準ツール。実行ファイルを逆アセンブルして解析する分野で長く事実上の定番だった。原型は1991年にIlfak Guilfanovが書いたDOS用ツールで、後に商用の「IDA Pro」へと育った。高機能版は年間数十万〜数百万円と高額だが、機能を絞った無料版「IDA Free」も提供されている。
  • Stirling世紀末に広く使われた、定番のバイナリエディタ。ファイルの中身を16進数で直接眺めて書き換えられる。並んだ数字の中に文字列やパスといった「人間が読める痕跡」が浮かび上がる瞬間に、低レイヤの面白さが詰まっている。

関連技術

この用語を扱った記事

リバースエンジニアリングとは|ソフトの仕組みを解析する技術を解説Stirlingの使い方|バイナリエディタでファイルを書き換えてみる