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

概要

編集

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

「逆-」という名称が用いられているが、一部の情報はコンパイルの過程で不可逆的に失われるため, バイナリを生成したオリジナルのソースコードを復元することは困難であり、コメント変数名、一部の制御フロー等は復元されない。一方で、Java を始めとした仮想マシンのバイトコードを高級言語に復元することは、ネイティブコードのそれに対して比較的容易であり、Java Decompiler[1]等のソフトウェアを用いることで高度な復元が可能な場合がある. 。

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

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

主要な逆コンパイラ

編集

脚注

編集

関連項目

編集

📚 Artikel Terkait di Wikipedia

Ghidra

of Processors Supported by Ghidra”. Github.com. 2023年10月12日時点のオリジナルよりアーカイブ。2023年9月29日閲覧。 IDA Pro JEB decompiler Binary Ninja 公式ウェブサイト ghidra - GitHub

FREE MOTION

やその教職員・学生向けのアカデミック版パッケージ、Motion Decompiler(AHSが販売するSothink SWF Decompiler(スペイン語版)の日本語版)とセットにした「職人パック Motion Decompiler + Free Motion 2」が発売された。 「frimo

JEB decompiler

JEBは、Android アプリケーションとネイティブマシンコード用の逆アセンブラおよび逆コンパイラ ソフトウェア。DalvikバイトコードからJava ソースコードへの逆コンパイル、またx86, ARM, MIPS, RISC-VマシンコードからCソースコードへの逆コンパイルが可能。アセンブリとソ