2010年8月1日日曜日

デコンパイリングJava ―逆解析技術とコードの難読化 (Art Of Reversing)

デコンパイリングJava ―逆解析技術とコードの難読化 (Art Of Reversing) Godfrey Nolan ISBN4873114497 オライリージャパン

Javaはバイトコードインタプリタで稼働し、アプレットというバイトコードをさらす形での運用を前提としていたことから、Javaの登場の直後から逆コンパイラと逆コンパイラの動作を難しくするための難読化ツールが公開され、発達してきた。

いまは、アプレットはすっかり廃れてしまい、ソースコードそのものが飛んでくるAJAXが一般的になってしまったのでちょっと外しているような気がしないでもない。JavaScriptの圧縮されたコードも大変なことになっているが。。言語仕様から言っても難読化しやすいし。

この本は、難読化とデコンパイルの双方をバランスよく説明している。実際に動作するコードが提示されていて参考になる。が、デコンパイラの実装に、一度XML化したクラスファイルを読み込んでるのはどうなんだ?しかも、XMLのパースならXMLパーサ使えばいいのにLEXもどきのものを使って読み込んでるのもちょっと理解しがたい。クラスファイル解析ツールライブラリはたくさんあるんだからそれらを直接使うべきだろう。まあ、逆コンパイラは一種のコンパイラだ!ということで、コンパイラを作るための標準的な技術を使って見せている、ということなのかも知れないが。

あと、この本ちょっと古くていまどきJDK1.5が対象。原著は2004年なので無理もないが、なぜこの本がこのタイミングで翻訳されたのか、理解に苦しんだり。

初期の逆コンパイラと難読化器として有名なMochaとCremaの作者 Hanpeter Van Vliet 氏は、両者の発表直後に癌でなくなったとのこと。ご冥福をお祈りします。

デコンパイリングJava ―逆解析技術とコードの難読化 (Art Of Reversing)
Godfrey Nolan オライリージャパン 売り上げランキング: 15025
ちょっと意外だったのは、この本、原著はO'reillyじゃないこと。APressだ。オライリージャパン、やるなあ。
Decompiling Java
Decompiling Java
posted with amazlet at 10.08.01
Godfrey Nolan Apress 売り上げランキング: 171785

0 件のコメント:

コメントを投稿