Javaバイトコードをデコンパイルする
効果的なアルゴリズム

デコンパイルとは

背景

背景(その2)

従来のデコンパイラでは不十分?

関連研究

関連研究(その2)

Krakatoaの手法

用語説明

用語説明(その2)

デコンパイラの概要

制御構造の復元

どこが難しいか?

着目

スライド16

バイトコードから
直接得られる制御情報

スライド18

アルゴリズム

アルゴリズム(その2)

スライド21

例で用いるプログラム

前段階(解析前)

ドミネータツリー

第一段階: ヘッダを識別する

第二段階:
後続ノードを探し制御構造を選ぶ

第三段階: if構造を復元する

第四段階:
break/continueを復元する

最終段階: 結果を出力する

解析結果

スライド31

評価

デコンパイル結果(mochaの場合)

デコンパイル結果(本研究)

速度比較

速度比較の結果

処理速度の詳細

プロファイルの結果

考察

結論

今後の課題