デコンパイラとは?


先に「なんでもランキング」で紹介したもの中に、「Jad」というものがありました。これは「Javaのデコンパイラ」だ、と説明をしました。このデコンパイラというものに、ずいぶんと多くの方が興味を抱いたようです。

デコンパイラとは、完成されたプログラムからそのソースコードを生成するものです。ソースコードからプログラムを生成するのがコンパイラ、その逆を行うのでデコンパイラと呼ばれます(逆コンパイラともいいます)。特にJavaの場合、デコンパイルされやすい構造になっているために、昔からいくつものデコンパイラが登場しました。

デコンパイルすれば、プログラムの中身をソースコードとして覗き見ることができます。プログラムの仕組みを知りたい人には究極の必殺アイテムといえるでしょう。また、自分の作ったプログラムでも「間違ってソースコードを消してしまった」というようなとき、完成したプログラムからソースコードを生成できるデコンパイラは大きな力になります。

ここまで説明して、「これ、ひょっとして違法なんじゃない?」と感じられた方もいるかも知れません。デコンパイルは、「リバースエンジニアリング(プログラムを解析すること)」の一種です。一般に「リバースエンジニアリング=違法」というイメージで捉えている方も多いかもしれません。が、少なくとも現時点で「プログラムをデコンパイルする行為そのもの」を違法という判断はなされていないようです。

少なくとも、個人での学習や利用ということに限定してのデコンパイルは違法行為ではないといえるでしょう。ただし、デコンパイルして得られたものを公表したり、勝手に自分のプログラム内で盗用したりすればもちろん違法行為とみなされるでしょう。また、商品プログラムなどでは使用許諾契約で「リバースエンジニアリング行為の禁止」ということを明記してあるものもあります。こうした商品プログラムをデコンパイルするのは、使用許諾契約の違反となりやはり違法行為とされることを知っておきましょう。

Jadのインストール


では、Javaのデコンパイラにはどのようなものがあるのでしょうか。以前は、さまざまなものがありましたが、現在広く使われているデコンパイラは「Jad」と呼ばれるものでしょう。Jadはコマンドラインからコマンドとして実行するタイプのデコンパイラです。非常に高速で、Javaデコンパイラのスタンダードともいえるものでしょう。現在、以下のURLよりダウンロードすることが可能です。

http://www.kpdus.com/jad.html
JadのWebサイト。「Download Jad」のリンクからダウンロードできます。
Jadをダウンロードし、圧縮されたファイルを展開してから、Jad.exeがあるディレクトリを環境変数pathに追記。これは要するに、コマンドプロンプトからファイル名でjadが検索されるようにするわけです。「よくわからない」「面倒だ」という人は、インストールされているJDK/JREの「bin」フォルダ内にJad.exeをコピーしてしまいましょう。こうすればコマンドプロンプトからそのまま実行できるようになります。