逆コンパイラ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。つきみんく (会話 | 投稿記録) による 2022年10月3日 (月) 23:51個人設定で未設定ならUTC)時点の版 (柔軟な権利制限規定を踏まえた)であり、現在の版とは大きく異なる場合があります。

逆コンパイラ(ぎゃくコンパイラ、: Decompiler)とは、機械語で記述されたオブジェクトコードを解析し、人間にわかりやすいソースコードを作成するプログラムである。

概要

人間がプログラムを作成するときには CJava といった高水準言語を用い、それをコンパイラによって機械語へ翻訳することで、コンピュータが理解できるオブジェクトコードが作成される(コンパイル)。逆コンパイルとはその名の通り、オブジェクトコードを解析し、ソースコードを作成することであり、それを行うプログラムを逆コンパイラという。

「逆-」という名称が用いられているが、むろん完全にもとのソースコードが再現されるわけではなく、コメント変数名はコンパイル時に完全に失われているため、元に戻すことは不可能である。しかし、Java の実行ファイルについてはかなり高い再現度でソースコードを作成することができる。

なお平成30年に著作権法改正により柔軟な権利制限規定がされ、ソフトウェアの開発元が定める利用規約等によって、公開されているプログラムに対して逆コンパイル等のリバースエンジニアリングを行うことを禁じている場合でも著作権侵害とならないと解される[1]、規約との関係については注意する必要がある。

EU では Directive on the legal protection of computer programs[2]の6条において、いくつかの条件のもとで逆コンパイルに権利者の許可が不要であると規定している。また9条の規定で、6条に反する契約条項は無効 (null and void) とされている。

主要な逆コンパイラ

脚注

関連項目