論文の概要: SK2Decompile: LLM-based Two-Phase Binary Decompilation from Skeleton to Skin
- arxiv url: http://arxiv.org/abs/2509.22114v1
- Date: Fri, 26 Sep 2025 09:35:46 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-09-29 20:57:54.337377
- Title: SK2Decompile: LLM-based Two-Phase Binary Decompilation from Skeleton to Skin
- Title(参考訳): SK2デコンパイル:LLMベースの2相バイナリデコンパイル
- Authors: Hanzhuo Tan, Weihao Li, Xiaolong Tian, Siyi Wang, Jiaming Liu, Jing Li, Yuqun Zhang,
- Abstract要約: SK2Decompileは,スケルトン(意味構造)からプログラムのスキン(識別器)へデコンパイルするための新しい2相アプローチである。
具体的には、まず、プログラムの「スケルトン」の導出として、プログラムのバイナリコードを中間表現(IR)に変換する構造回復モデルを適用する。
我々は,コンパイラが期待する構文的・意味的規則に従うプログラム構造を生成するモデルに,強化学習を適用した。
- 参考スコア(独自算出の注目度): 17.843213826367343
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Large Language Models (LLMs) have emerged as a promising approach for binary decompilation. However, the existing LLM-based decompilers still are somewhat limited in effectively presenting a program's source-level structure with its original identifiers. To mitigate this, we introduce SK2Decompile, a novel two-phase approach to decompile from the skeleton (semantic structure) to the skin (identifier) of programs. Specifically, we first apply a Structure Recovery model to translate a program's binary code to an Intermediate Representation (IR) as deriving the program's "skeleton", i.e., preserving control flow and data structures while obfuscating all identifiers with generic placeholders. We also apply reinforcement learning to reward the model for producing program structures that adhere to the syntactic and semantic rules expected by compilers. Second, we apply an Identifier Naming model to produce meaningful identifiers which reflect actual program semantics as deriving the program's "skin". We train the Identifier Naming model with a separate reinforcement learning objective that rewards the semantic similarity between its predictions and the reference code. Such a two-phase decompilation process facilitates advancing the correctness and readability of decompilation independently. Our evaluations indicate that SK2Decompile, significantly outperforms the SOTA baselines, achieving 21.6% average re-executability rate gain over GPT-5-mini on the HumanEval dataset and 29.4% average R2I improvement over Idioms on the GitHub2025 benchmark.
- Abstract(参考訳): 大きな言語モデル(LLM)はバイナリ逆コンパイルの有望なアプローチとして登場した。
しかし、既存のLLMベースのデコンパイラは、元の識別子でプログラムのソースレベルの構造を効果的に提示するのに、まだ多少制限がある。
これを軽減するために,SK2Decompileは骨格(意味構造)からプログラムの皮膚(識別器)に分解する新しい2相アプローチである。
具体的には、まず、プログラムのバイナリコードを中間表現(IR)に変換する構造回復モデルを適用し、プログラムの「スケルトン」、すなわち、すべての識別子を一般的なプレースホルダーで難読化しながら制御フローとデータ構造を保存する。
また,コンパイラが期待する構文的・意味的ルールに則ったプログラム構造を生成するために,強化学習を適用した。
第二に、Identifier Namingモデルを用いて、プログラムの「スキン」を導出する実際のプログラム意味論を反映した有意義な識別子を生成する。
我々は、Identifier Namingモデルに対して、その予測と参照コードとのセマンティックな類似性に報いる、別個の強化学習目標で訓練する。
このような2相逆コンパイルプロセスは、独立して逆コンパイルの正確性と可読性を向上させる。
我々の評価によると、SK2DecompileはSOTAベースラインを大幅に上回り、HumanEvalデータセットでGPT-5-miniの平均再実行率21.6%、GitHub2025ベンチマークでIdiomsよりも29.4%向上している。
関連論文リスト
- ASMA-Tune: Unlocking LLMs' Assembly Code Comprehension via Structural-Semantic Instruction Tuning [33.53059396922164]
アセンブリコード分析と理解は、リバースエンジニアリングのようなアプリケーションにおいて重要な役割を果たす。
従来のマスク付き言語モデリングアプローチは、自然言語の相互作用に明示的に焦点を合わせていない。
本稿では、エンドツーエンドな構造意味的命令チューニングフレームワークであるアセンブリ・チューニングについて述べる。
論文 参考訳(メタデータ) (2025-03-14T17:36:08Z) - EquiBench: Benchmarking Large Language Models' Reasoning about Program Semantics via Equivalence Checking [58.15568681219339]
大規模言語モデル(LLM)を評価するための新しいベンチマークであるEquiBenchを紹介する。
このタスクは、プログラムのセマンティクスについて推論するモデルの能力を直接テストする。
19の最先端LCMを評価し、最も難しいカテゴリでは、最高の精度は63.8%と76.2%であり、50%のランダムベースラインよりわずかに高い。
論文 参考訳(メタデータ) (2025-02-18T02:54:25Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Self-Constructed Context Decompilation with Fined-grained Alignment Enhancement [43.2637367483626]
逆コンパイルは、ソースコードが利用できない場合、コンパイルされたコードをハイレベルなプログラミング言語に変換する。
これまでの研究は主に、モデルパラメータのスケールや事前トレーニングのためのトレーニングデータを増やすことで、デコンパイル性能の向上に重点を置いてきた。
これら2つの手法を統合することで、Decompile-Evalベンチマークで約3.90%の再実行可能性向上を実現し、新しい最先端性能52.41%を確立した。
論文 参考訳(メタデータ) (2024-06-25T02:37:53Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [51.898805184427545]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - LLM4Decompile: Decompiling Binary Code with Large Language Models [10.346311290153398]
Decompilationはバイナリコードを高レベルのソースコードに変換することを目的としているが、Ghidraのような従来のツールでは読み書きが難しい場合が多い。
LLM4Decompileは,バイナリコードのデコンパイルを訓練した最初の,かつ最大のオープンソースLLMシリーズ(1.3Bから33B)である。
結果、GPT-4oとGhidraをHumanEvalとExeBenchのベンチマークで100%以上上回った。
論文 参考訳(メタデータ) (2024-03-08T13:10:59Z) - SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
LILOは、反復的に合成、圧縮、文書化を行う、ニューロシンボリックなフレームワークである。
LILOは、LLM誘導プログラム合成と、Stitchから自動化された最近のアルゴリズムの進歩を組み合わせたものである。
LILOのシンセサイザーが学習した抽象化を解釈し、デプロイするのを手助けすることで、AutoDocがパフォーマンスを向上させることが分かりました。
論文 参考訳(メタデータ) (2023-10-30T17:55:02Z) - Boosting Neural Networks to Decompile Optimized Binaries [13.255618541522436]
Decompilation は低レベルプログラム言語 (LPL) を機能的に等価な高レベルプログラム言語 (HPL) に変換することを目的としている。
本稿では,コンパイラ最適化バイナリをターゲットとしたNeurDPという新しい学習手法を提案する。
論文 参考訳(メタデータ) (2023-01-03T06:45:54Z) - Improving Mandarin End-to-End Speech Recognition with Word N-gram
Language Model [57.92200214957124]
外部言語モデル(LM)は、エンドツーエンド(E2E)自動音声認識(ASR)システムの音声認識性能を向上させることができる。
単語レベルの格子をオンザフライで構築し,可能なすべての単語列を考慮可能な,新しい復号アルゴリズムを提案する。
提案手法は,N-gram LMやニューラルネットワーク LM など,サブワードレベルのLMを一貫して上回る。
論文 参考訳(メタデータ) (2022-01-06T10:04:56Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。