Javaプログラミング/Javaプログラミング関連情報

禁断の必殺技?「デコンパイラ」を使う(3ページ目)

プログラムを解析しソースコードを生成するデコンパイラ(逆コンパイラ)。JavaのデコンパイラであるJadについて、デコンパイルについて、わかりやすく解説します。

執筆者:掌田 津耶乃

GUIを使ったツールを使おう


Jadはコマンドとして用意されているので、毎回使う度にコマンドプロンプトを起動してコマンドを打ち込んで……とするのはかなり面倒です。そこで、JadにGUIを用意したツール類がいろいろと登場しています。ここでは、主なものをいくつか紹介しておきましょう。


DJはデコンパイル以外にも多くの解析機能を持っています。
●DJ Java Decompiler
DJは、クラスファイルだけでなく、JARファイルを直接開いてデコンパイルをしたり、クラスディレクトリにあるクラスをまとめてデコンパイルするなど効率的にデコンパイルを行うことができます。デコンパイルされたソースコードはキーワードやリテラルなどが色分け表示され、また用意されているメソッドの一覧が別枠で表示されるなど非常にわかりやすく整理された形で表示されます。

またデコンパイルの他にもDJにはさまざまな機能が組み込まれています。デコンパイルされたソースコードをもとに、再度のコンパイル、実行、JARファイルの生成などをDJ内から行うことができます。またクラスファイル内をディスアセンブルしてバイトコードの状態を調べたり、メソッドやフィールド、定数プールの状態などを詳しく表示するなど、一般的な開発環境にもあまり用意されていない機能も多くそろっています。

DJは、デコンパイルやディスアセンブルなど、「プログラムを解析する」という視点から作られた、特殊なJava開発環境であるということもできるでしょう。実際、DJで一からJavaプログラムを開発することも十分可能なのです。(なお、DJは現在、シェアウェアとなっており、継続して使用するには登録が必要です)

FrondEnd Plusは非常にシンプルで使いやすいデコンパイルツールです。
●FrontEnd Plus
Jadを使ったデコンパイルツールです。通常のWindowsアプリケーションになっており、メニューやアイコンを使ってデコンパイルを行えます。現在、FrontEnd Plusのサイトが閉鎖されているようで、Jadのサイトから直接ダウンロード可能になっています。

機能的なものでは、DJよりもかなり劣る感はありますが、シンプルで簡単に使えるデコンパイラとしてなかなか重宝します。JARファイルからデコンパイルすることはできませんが、複数のクラスファイルをまとめてデコンパイルするなどは可能ですので、実用上問題はないでしょう。


Jodeはpure Javaなデコンパイルツールです。
●Jode
Javaでできたpure Javaなデコンパイラです。Executable Java Archiveとして作成されており、ダブルクリックで起動し、ビジュアルに操作できます。Jodeは、classpath上にあるクラスファイルやJARファイルなどを調べ、すべてのクラスを階層的に一覧表示します。そして、その中から調べたいクラスをダブルクリックして開けば、その場でデコンパイルしてソースコードを表示するのです。

classpathにあるクラスを自動的に認識するため、特定のプログラムのデコンパイルをしたいような場合は、そのクラスファイルやJARファイルがある場所をclasspathに設定するといったやり方をします。もちろん、Jode内からメニューで簡単に行えるのですが、慣れないとどう使うのかよくわからないかも知れません。少々癖のあるツールだといえるでしょう。
http://jode.sourceforge.net/download.html

JadClpseはEclipseのプラグイン。Eclipse内からクラスをデコンパイルします。
●JadClipse
EclipseからJadを利用するためのプラグインです。これをインストールすると、クラスファイルをダブルクリックするだけでそのクラスがデコンパイルされソースコードがエディタで表示されるようになります。

JadClipseでは、プロジェクト内にクラスファイルやJARのファイルをコピーしたり、ライブラリとしてそれらを参照するなどして、調べたいファイルをプロジェクトエクスプローラーから表示できるようにしておかなければいけません。「クラスファイルを開くとデコンパイル」というものではないのです。Eclipseという開発環境にデコンパイル機能を追加するというものですので、あくまで「Eclipseでの開発を支援するもの」と考えるとよいでしょう。
http://sourceforge.net/projects/jadclipse/


以上、さまざまなJavaのデコンパイルツールを紹介しました。デコンパイルは、完成されたプログラムをソースコードに戻してしまう、プログラマからすれば夢のツールです。が、それ故に、使い方のルールをわきまえないでいると違法行為につながりかねないものであることもよく理解しておいてください。その点さえしっかりと認識していれば、デコンパイラは強力な武器となってくれることでしょう。
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます