Javaバイトコードをデコンパイルする
効果的なアルゴリズム
デコンパイルとは
背景
背景(その2)
従来のデコンパイラでは不十分?
関連研究
関連研究(その2)
Krakatoaの手法
用語説明
用語説明(その2)
例
デコンパイラの概要
制御構造の復元
どこが難しいか?
着目
スライド16
バイトコードから
直接得られる制御情報
スライド18
アルゴリズム
アルゴリズム(その2)
スライド21
例で用いるプログラム
前段階(解析前)
ドミネータツリー
第一段階: ヘッダを識別する
第二段階:
後続ノードを探し制御構造を選ぶ
第三段階: if構造を復元する
第四段階:
break/continueを復元する
最終段階: 結果を出力する
解析結果
スライド31
評価
デコンパイル結果(mochaの場合)
デコンパイル結果(本研究)
速度比較
速度比較の結果
処理速度の詳細
プロファイルの結果
考察
結論
今後の課題