逆コンパイラ 【decompiler】 デコンパイラ

概要

逆コンパイラ(decompiler)とは、機械語などで書かれたオブジェクトコードを解析し、元になった高水準言語によるソースコードに逆変換するソフトウェアのこと。そのような工程を「逆コンパイル」あるいは「デコンパイル」(decompile)という。

人間が読み書きしやすいプログラミング言語で書かれたコンピュータプログラムを「ソースコード」(source code)というが、これはそのままではコンピュータ実行できないため、機械語中間言語などの「オブジェクトコード」(object code)に変換する必要がある。開発時に変換をいっぺんにソフトウェアを「コンパイラ」(compiler)という。

逆コンパイラはこれとは逆に、機械語中間言語で書かれたオブジェクトコードを読み込んで、元になったソースコードへの復元を試みる。何らかの事情でソースコードが入手できないソフトウェアを別の環境移植したり、機能を模倣するためのリバースエンジニアリングう際などに用いられる。

通常、ソースコードに記述された変数名関数名などのシンボルはコンパイル時に失われていることが多く、高水準言語の構文はアセンブリ言語と違って機械語中間言語命令語などと一対一に対応しないため、完全に元のソースコードが再現されるわけではない。

商用ソフトウェアなどの中には、知的財産権の保護などの理由から、販売・配布時の利用許諾契約逆コンパイルを禁じている製品もある。Java開発されたプログラムバイトコード(中間形式)から逆コンパイルしやすい構造であることが知られており、逆コンパイル対策ソフト開発されている。

(2023.4.25更新)

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

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる