2005-04-21
_ クラスファイルからの逆コンパイル
Javaはクラスファイルからソースコードに逆コンパイルできることは知っていたのですが,実際にやってみたこともなく,どうやるのかもしらなかったのですが,逆コンパイルする必要がでてきたので調べてみました.
JDKには標準でjavapというコマンドで逆コンパイルできます.
C:\> javap -c hogehoge
ただ,javapで逆コンパイルしたものはあんまり意味がわかりません.できれば元のソースがほぼそのまま再現されるのが一番便利です.これを実現してくれるツールにJadというものがあります.Jadで逆コンパイルをかけて出力されるファイルは,ほぼソースファイルを再現してくれます.ログ表示などに日本語などの2バイト文字を記述していると,Unicodeに変換されています.
コンパイルされたバイナリファイルはあるけどソースファイルが手元にないときは,このツールが役立ちそうです.