要旨: コード難読化解除(deobfuscation)とは、元の動作を保持しながら、プログラムの読みやすい版を復元する課題である。実際には、複雑で高価な解析ツールを用いた手作業を数日、あるいは数か月要することが多い。本論文では、Chain-of-Thought(CoT)プロンプトに基づく代替アプローチを検討する。この方法では、大規模言語モデルを、コード解析に合わせて明示的な段階的推論を行うように誘導する。我々は、Control Flow Flattening(CFF)、Opaque Predicates、そしてそれらの組み合わせを含む制御フロー難読化に焦点を当て、制御フローグラフの構造復元とプログラム意味論の保存の両方を測定する。最先端の大規模言語モデル5つを評価し、単純なプロンプトと比べてCoTプロンプトが難読化解除の品質を大幅に向上させることを示す。本手法を、標準的なCベンチマークの多様なセットで検証し、制御フローグラフに対する構造的指標と、出力の類似性に基づく意味的指標の両方を用いて結果を報告する。テストしたモデルの中で、かつCoTを適用した場合、GPT5が全体として最も強い性能を示し、ベンチマークにおいてゼロショット・プロンプトと比べて、制御フローグラフ再構成で平均約16%の向上、意味論保存で約20.5%の向上を達成した。さらに、我々の結果は、モデル性能が難読化レベルや選択した難読化器だけでなく、元の制御フローグラフ固有の複雑さにも依存することを示している。総合すると、これらの知見は、CoTに導かれた大規模言語モデルがコード難読化解除のための効果的なアシスタントとして機能し得ることを示唆しており、コードの説明可能性を高め、より忠実な制御フローグラフ再構成を実現し、さらにプログラム挙動の保存を改善しつつ、逆工学に必要な手作業を(可能性として)削減できる。
制御フローのコード難読化解除タスクにおけるChain of Thought(CoT)手法の分析
arXiv cs.AI / 2026/4/20
💬 オピニオンIdeas & Deep AnalysisModels & Research
要点
- 本論文は、Chain-of-Thought(CoT)プロンプトを大規模言語モデルに適用し、Cコードの制御フロー難読化を、元の振る舞いを保ったまま復元(難読化解除)する手法を検討しています。
- 制御フロー平坦化(Control Flow Flattening)やオペーク述語(Opaque Predicates)、それらの組み合わせを対象に、5つの最先端LLMを評価し、制御フローグラフの構造復元と意味保持の両面で測定します。
- 単純なプロンプト(ゼロショット)と比べて、CoTプロンプトは標準的なCベンチマーク全体で難読化解除の品質を大きく向上させます。
- GPT-5が総合的に最も強い結果を示し、制御フローグラフ再構成で平均約16%の改善、意味保持で平均約20.5%の改善を報告しています。
- 遮蔽レベルや使用する難読化手法の選択だけでなく、元の制御フローグラフの固有の複雑さによっても性能が変動することが示され、適用範囲や最適化の余地が示唆されています。



