論文の概要: No Bit Left Behind: Using Brute-Force Lifting to Achieve Fully Static Binary Recompilation
- arxiv url: http://arxiv.org/abs/2609.16423v1
- Date: Mon, 14 Sep 2026 23:00:09 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-09-16 14:56:08.258799
- Title: No Bit Left Behind: Using Brute-Force Lifting to Achieve Fully Static Binary Recompilation
- Title(参考訳): ブルート・フォース・リフティング(Brute-Force Lifting)による完全静的バイナリ再コンパイル
- Abstract要約: 本稿では,完全に静的なプログラム全体のバイナリリフトシステムについて述べる。
このアプローチは、x86-64バイナリからLLVM IRへのプロトタイプバイナリランタイムとして実装されており、コード/データランタイムは必要ありません。
- 参考スコア(独自算出の注目度): 1.5034998782245808
- License: http://creativecommons.org/licenses/by-sa/4.0/
- Abstract: Binary recompilation is a technique for operating directly on executable code. It promises to automate two important tasks: retrofitting security mitigations onto legacy binaries, and migrating binaries across instruction set architectures (ISAs). Yet today, there is no fully automated system that can reliably lift arbitrary binary executables to a compiler intermediate representation (IR) such as LLVM IR, or that can fully statically and reliably translate non-trivial binary executables from one ISA to another. The main underlying problem is that recovering a program's control flow graph (CFG) statically is impossible in general: computed branches can jump to targets that cannot be determined without actually running the program. Existing systems resort to runtime fallback mechanisms, requiring a significant portion of the binary translation machinery to accompany the translated program on the target machine. This article presents a fully static, whole-program binary lifting system requiring no runtime translation support on the target. Rather than attempting to distinguish code from data, we treat every byte offset as a potential branch target and lift the entire binary in a brute-force manner, constructing a superset CFG that conservatively contains all feasible control flows. Statically unresolvable computed branches are thereby reduced to lookups in a dispatch table that points to the corresponding translated control flow path. We have implemented this approach as a prototype binary recompiler from x86-64 binaries to LLVM IR, requiring no code/data heuristics. We validate it with a fully static cross-compilation to AArch64, achieved by reusing existing LLVM backends with no modification.
- Abstract(参考訳): バイナリ再コンパイル(binary recompilation)は、実行可能コードを直接操作するテクニックである。
セキュリティ対策をレガシーバイナリに再適合させ、命令セットアーキテクチャ(ISA)間でバイナリを移行する、という2つの重要なタスクを自動化する。
しかし今日では、LLVM IRのようなコンパイラ中間表現(IR)に任意のバイナリ実行ファイルを確実に持ち上げる、あるいは非自明なバイナリ実行ファイルをISAから別のISAへ完全に静的かつ確実に翻訳できる、完全に自動化されたシステムが存在しない。
主な根本的な問題は、プログラムの制御フローグラフ(CFG)を静的に復元することは一般的に不可能である。
既存のシステムは実行時のフォールバック機構を利用しており、ターゲットマシン上の翻訳プログラムに付随するためにバイナリ翻訳機械のかなりの部分を必要とする。
本稿では,完全に静的なプログラム全体のバイナリリフトシステムについて述べる。
データとコードを区別する代わりに、すべてのバイトオフセットを潜在的分岐ターゲットとして扱い、すべての実行可能な制御フローを保守的に含むスーパーセットCFGを構築する。
これにより、統計的に解決不可能な演算枝を、対応する変換制御フローパスを指し示すディスパッチテーブルのルックアップに縮小する。
我々はこの手法を,x86-64バイナリからLLVM IRへのバイナリリコンパイラのプロトタイプとして実装し,コード/データヒューリスティックスを必要としない。
既存のLLVMバックエンドを変更せずに再利用することで実現した、AArch64に対する完全に静的なクロスコンパイルで検証する。
関連論文リスト
- SEDCoT: Enhancing LLM-Based COBOL Code Translation via Symbolic Execution and Delta Debugging [49.898541267264115]
古い技術や疎結合なドキュメンテーション、開発者の引退などによって、メンテナンスはますます難しくなっている。
従来のルールベースのトランスコンパイラは、読み書きが難しい出力を出力する。
本稿では,新しいC言語翻訳フレームワークであるSEDCoTを提案する。
論文 参考訳(メタデータ) (2026-07-05T03:07:10Z) - Decaf: Improving Neural Decompilation with Automatic Feedback and Search [64.02615739798277]
高レベルな構文、識別子、カスタムデータ型は一般的に失われ、コンパイラは人間可読なコードを低レベルなマシンコードに変換する。
生成AIモデルは、ハイレベルな構文、識別子、型を再構築するのに自然なものだ。
コンパイラフィードバックは,サーチによるニューラルデコンパイラ出力のセマンティックな正当性の向上に有効である,と我々は主張する。
論文 参考訳(メタデータ) (2026-05-12T04:21:26Z) - Deterministic Fully-Static Whole-Binary Translation without Heuristics [4.112095753709181]
Elevatorはx86-64実行ファイル全体をAArch64デバッグ情報、ソースコード、コードレイアウトに関する仮定に変換する。
我々は,SPECint 2006スイート全体を含む,現実世界のバイナリの多種多様なコーパス上でエレベータを評価する。
論文 参考訳(メタデータ) (2026-05-08T19:25:06Z) - Constraint-Guided Multi-Agent Decompilation for Executable Binary Recovery [47.704311990064554]
脱コンパイルは、セキュリティ分析、マルウェアのリバースエンジニアリング、レガシーソフトウェアメンテナンスに不可欠である。
マルチレベル制約誘導型デコンパイル(MCGD)により,デコンパイルされたコードを再実行可能なソースに変換するマルチエージェントフレームワークを提案する。
本フレームワークは,84~97%の再実行性を実現し,28~89ポイントのベースラインデコンパイラ出力を改善した。
論文 参考訳(メタデータ) (2026-04-27T01:28:11Z) - Superset Decompilation [7.989066784325648]
decompilationはコンパイルの逆で、モジュラーパスのシーケンスとして構成できる。
我々はこれを、バイナリに関する事実を一元的にリレーショナルストアに導出するフレームワークである、証明誘導スーパーセットデコンパイル(PGSD)として定式化する。
Mandelは、宣言的なリバースエンジニアリングフレームワークとしてPGSDを実装しており、Linux ELFバイナリを35K行のRustとDatalogの粒度の中間表現を通じてC99に引き上げている。
論文 参考訳(メタデータ) (2026-03-30T03:47:19Z) - PCodeTrans: Translate Decompiled Pseudocode to Compilable and Executable Equivalent [8.576619291429969]
PCodeTransは、逆コンパイル、再コンパイル、厳密な関数レベルの動的検証のギャップを埋める。
99.55%と99.89%のテスト検証された動作一貫性とともに、ストリップされていないバイナリ上で100%の関数レベルのコンパイルが可能となる。
論文 参考訳(メタデータ) (2026-03-16T05:54:24Z) - Residual Context Diffusion Language Models [90.07635240595926]
Residual Context Diffusion (RCD) は、捨てられたトークン表現をコンテキスト残留に変換し、次のデノイングステップでそれらを注入するモジュールである。
RCDは、最小限の計算オーバーヘッドで、5-10ポイントの精度でフロンティアdLLMを一貫して改善する。
論文 参考訳(メタデータ) (2026-01-30T13:16:32Z) - Context-Guided Decompilation: A Step Towards Re-executability [50.71992919223209]
バイナリ逆コンパイルは、ソフトウェアセキュリティ分析、リバースエンジニアリング、マルウェア理解において重要な役割を果たす。
大規模言語モデル (LLMs) の最近の進歩により、ニューラルデコンパイルが可能になったが、生成されたコードは一般的に意味論的にのみ使用可能である。
In-context Learning(ICL)を活用して,再実行可能なソースコードを生成するためのILC4Decompを提案する。
論文 参考訳(メタデータ) (2025-11-03T17:21:39Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - LeanBin: Harnessing Lifting and Recompilation to Debloat Binaries [1.1749374602770741]
LeanBinは、新しいバイナリデブロと特殊化ツールである。
観測された実行トレースに基づいて、リフトと再コンパイルを利用する。
論文 参考訳(メタデータ) (2024-06-23T16:46:05Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。