スポンサード リンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサード リンク
-- : -- : -- | スポンサー広告 | page top↑
スポンサード リンク

Javaの逆コンパイラJadのインストールと使い方

昨日の記事「Javaの逆コンパイラJadがすごい・・・変数名も再現された!」でJavaの逆コンパイラJadを紹介しましたが、Jadはコマンドラインで動作するソフトであり、ドキュメントもすべて英語で書かれているため取っつきにくく感じられるかもしれません。

しかし、実際には非常に簡単にインストールして使うことができるので、その方法を説明します(*1)。※Windows環境を想定しています。

ダウンロード

Jadのダウンロードページから「Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform」をダウンロードします。

解凍

先程ダウンロードしたアーカイブファイル「jadnt158.zip」を適当な解凍ソフトで展開します。この中には実行ファイル「jad.exe」とテキストファイル「Readme.txt」が入っています。

インストール

一番簡単な方法は、「java.exe」や「javac.exe」の入ったフォルダ「jdk1.x.x_xx\bin」(*1)に実行ファイル「jad.exe」をコピー&ペーストすることだと思います。

起動

コマンドプロンプトで「jad」とコマンドを入力すると使い方とオプションの一覧が表示されます。(*3)

> jad
Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov (jad@kpdus.com).
Usage:    jad [option(s)] <filename(s)>
Options: (省略)

使い方

次のコマンドでJavaのオブジェクトファイルfilename.classが逆コンパイルされ、filename.jadが生成されます。

> jad filename.class

ワイルドカードを使用することができるので、次のようにすれば現在のフォルダのすべてのオブジェクトファイルが逆コンパイルされます。

> jad *.class

-sオプションを使用することで、出力ファイルの拡張子を指定することができます。例えば、次のコマンドは入力ファイルを逆コンパイルしてfilename.javaというファイルを生成します。

> jad -sjava filename.class

-oオプションは出力ファイルと同じ名前のファイルが存在する場合、それを上書き(Overwrite)します。ただし、-sjavaオプションと組み合わせて使う場合は注意が必要です。というのも、オリジナルのソースファイルが存在する場合、それを上書きしてしまうからです。

> jad -o -sjava filename.class

Jadでは入力ファイルの名前が出力ファイルでも使われますが、-pオプションによって名前を指定することができます。

> jad -p in_filename.class > out_filename

-dオプションは新しいフォルダを作り、そこにファイルを出力します。つまり、次のコマンドは現在のフォルダにdirectorynameという名前のフォルダを作成し、そこにfilename.classを出力します。

> jad -ddirectoryname filename.class

以上、Jadの基本的な使い方とよく使いそうなオプションについて説明しました。ほかにも様々なオプションがあるので、そちらは必要に応じてReadme.txtなどを参照して下さい。

*1: Jadに同梱されているReadme.txt(英語)を参考にしています。

*2: そのフォルダが環境変数Pathに通っている必要がありますが、JavaJDKのインストール時にPathを通している方が多いと思います。よくわからない方は、とりあえず自分が一番最初にインストールしたJavaJDKのbinフォルダに「jad.exe」を入れてみてください。

*3: コマンドを受け付けない場合はJadのインストールが正しく行われていません。環境変数Pathを再度確認して下さい。


スポンサード リンク

テーマ:プログラミング - ジャンル:コンピュータ - ソーシャルブックマーク: この記事をクリップ! Yahoo!ブックマークに登録

18 : 03 : 35 | プログラミング-Java | トラックバック(0) | コメント(0) | page top↑
<<ATOK定額制サービス 月額300円 | ホーム | Javaの逆コンパイラJadがすごい・・・変数名も再現された!>>
コメント

コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
http://networkprogramming.blog18.fc2.com/tb.php/56-0295b60e
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |

プロフィール

Author:TBVector

プロフィール

メールフォーム

記事検索

Google

最近の記事

人気の記事

過去の記事

カテゴリー

タグランキング

リンク

最近のコメント

最近のトラックバック

アクセスカウンタ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。