逆コンパイル 【decompile】 デコンパイル

概要

逆コンパイル(decompile)とは、実行可能形式コンピュータプログラムを解析し、開発時に用いられたプログラミング言語による記述(ソースコード)に戻す変換処理のこと。そのような変換を行うソフトウェアを「逆コンパイラ」(decompiler/デコンパイラ)という。

一般的なソフトウェア開発では、人間が理解しやすい高水準言語によりソースコードの記述を行い、これをコンパイラcompiler)と呼ばれるソフトウェアによってコンピュータの解釈可能なオブジェクトコードバイナリコード/ネイティブコード)に変換して実行する。

コンパイルはこのような通常のコンパイルとは逆に、オブジェクトコードを解析し、元になったソースコードへの逆変換を試みる。開発者からソースコードが入手できず実行形式のコードしかない状況でプログラムの挙動を詳細に解析したい場合などに行われる。

一般に、オブジェクトコード中にはソースコードに記述されていた変数名や関数名などのシンボル、コメントなど実行時に不要な情報は残っておらず、これらの内容を逆コンパイルによって復元することはできない。また、コンパイラの最適化処理によって、元のコードとは実質的な処理内容を維持したまま異なるコードに置き換えられる場合もあり、逆コンパイルすると置き換え後のコードが復元される。

(2018.6.18更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。