ablog

不器用で落着きのない技術者のメモ

Java の class をデコンパイルしてみた

Home Page of Jad - the fast Java decompiler から
Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform
(http://web.archive.org/web/20080214075546/http://www.kpdus.com/jad/winnt/jadnt158.zip)
をダウンロードする。
Windows XP 版がないけど、たぶんこれで動くだろう。
解凍してみると、2ファイルしかない。

jad.exe
Readme.txt

パスの通っているところに置いてやる。
とりあえず、C:\WINDOWS\system32\ に jad.exe をコピーして、コマンドプロンプトから jad ってみる。

> cd c:\work
> dir /b
hoge.class
hogehoge.class
> jad *.class
> dir /b
hoge.class
hoge.jad
hogehoge.class
hogehoge.jad

jad って拡張子のファイルがデコンパイルされたソースコードソースコード内のリテラルが16進数みたいになっていて読めないので、jad のオプションを見てみる。

> jad
...
         -8       - convert Unicode strings into ANSI strings (ansi)
...

-8 ってオプションが使えそうなので使ってみる。

> jad -8 *.class
> dir /b
hoge.class
hoge.jad
hogehoge.class
hogehoge.jad

できた *.jad を開いてみると、リテラルの部分が読める。
こりゃ便利だ。