論文の概要: Idioms: Neural Decompilation With Joint Code and Type Prediction
- arxiv url: http://arxiv.org/abs/2502.04536v1
- Date: Thu, 06 Feb 2025 22:13:40 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-02-10 14:58:22.993623
- Title: Idioms: Neural Decompilation With Joint Code and Type Prediction
- Title(参考訳): Idioms: ジョイントコードと型予測によるニューラルデコンパイル
- Authors: Luke Dramko, Claire Le Goues, Edward J. Schwartz,
- Abstract要約: 我々は,任意のLDMをニューラルデコンパイラに微調整する新たなトレーニングプロセスを導入し,そのデコンパイルと同時に適切なユーザ定義型を生成する。
データ構造の様々な部分がプログラムの異なる部分によって操作できるという直感に触発されて、相互言語的コンテキストが、ユーザ定義型を扱う神経逆コンパイラの能力の向上に役立つことを示す。
- 参考スコア(独自算出の注目度): 7.421408987075001
- License:
- Abstract: Decompilers are important tools for reverse engineers that help them analyze software at a higher level of abstraction than assembly. Unfortunately, because compilation is lossy, deterministic decompilers produce code that is missing many of the details that make source code readable in the first place, like variable names and types. Neural decompilers, on the other hand, offer the ability to statistically fill in these details. Existing work in neural decompilation, however, suffers from substantial drawbacks that limits its ability to handle real code: it is unable to handle user-defined composite types, which are essential to fully specifying many functions' semantics, or require test cases. In this work, we introduce a new training process to finetune any LLM into a neural decompiler capable of generating the appropriate user-defined types alongside the decompilation. We introduce a new dataset, Realtype, that includes substantially more complicated and realistic types than existing neural decompilation benchmarks. Motivated by the intuition that different parts of data structures can be operated upon by different parts of the program, we show that interprocedural context can help improve neural decompilers' ability to handle user-defined types. We show that our training process yields state-of-the-art results in neural decompilation. We also publicly release the Idioms series of finetuned neural decompilation models in support of open science. In summary, we identify the need for joint code and type prediction, show that it is a hard problem, and take the first steps towards solving it.
- Abstract(参考訳): 逆コンパイラは、アセンブリよりも高度な抽象化レベルでソフトウェアを分析するのに役立つリバースエンジニアにとって重要なツールである。
残念なことに、コンパイルが失われているため、決定論的デコンパイラは、変数名や型など、ソースコードを可読化する詳細の多くを欠いているコードを生成する。
一方、ニューラルデコンパイラは、これらの詳細を統計的に埋める機能を提供する。
しかし、ニューラルデコンパイルにおける既存の作業は、実際のコードを扱う能力を制限する重大な欠点に悩まされている。多くの関数のセマンティクスを完全に指定したり、テストケースを必要とする、ユーザ定義の複合型を扱うことができない。
本研究では,任意のLDMをニューラルデコンパイラに微調整し,そのデコンパイルと同時に適切なユーザ定義型を生成するための新たなトレーニングプロセスを提案する。
既存の神経脱コンパイルベンチマークよりもはるかに複雑で現実的な型を含む新しいデータセットであるRealtypeを紹介します。
データ構造の様々な部分がプログラムの異なる部分によって操作できるという直感に触発されて、相互言語的コンテキストが、ユーザ定義型を扱う神経逆コンパイラの能力の向上に役立つことを示す。
我々のトレーニングプロセスは、ニューラルデコンパイルの最先端の結果をもたらすことを示す。
また、オープンサイエンスをサポートするために、Idiomsシリーズの細調整ニューラルデコンパイルモデルも公開しています。
まとめると、私たちはジョイントコードと型予測の必要性を特定し、それが難しい問題であることを示し、その解決に向けた第一歩を踏み出します。
関連論文リスト
- ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Fast, Fine-Grained Equivalence Checking for Neural Decompilers [7.421408987075001]
ニューラルデコンパイラ用に設計された新しい命令レベルコード等価技術であるCodealignを導入する。
コーダリンが等価アライメントをどのように生成するかを示し、その上でシンボリック実行と比較してコーダリンを評価する。
論文 参考訳(メタデータ) (2025-01-08T19:59:48Z) - Training Neural Networks as Recognizers of Formal Languages [87.06906286950438]
形式言語理論は、特に認識者に関するものである。
代わりに、非公式な意味でのみ類似したプロキシタスクを使用するのが一般的である。
ニューラルネットワークを文字列のバイナリ分類器として直接訓練し評価することで、このミスマッチを補正する。
論文 参考訳(メタデータ) (2024-11-11T16:33:25Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - Neuro-Symbolic Execution of Generic Source Code [6.47243430672461]
我々は、ジェネリックソースコードの実行のための最初のニューラルモデルであるNeural Interpretation (NI)を導入する。
NIは、コンパイラアーキテクチャを持つコンピュータの新しいニューラルモデルであり、ソースコードによって「プログラムされた」ニューラルネットワーク層を組み立てることができる。
論文 参考訳(メタデータ) (2023-03-23T17:56:45Z) - Boosting Neural Networks to Decompile Optimized Binaries [13.255618541522436]
Decompilation は低レベルプログラム言語 (LPL) を機能的に等価な高レベルプログラム言語 (HPL) に変換することを目的としている。
本稿では,コンパイラ最適化バイナリをターゲットとしたNeurDPという新しい学習手法を提案する。
論文 参考訳(メタデータ) (2023-01-03T06:45:54Z) - Beyond the C: Retargetable Decompilation using Neural Machine
Translation [5.734661402742406]
我々は,新しい言語に容易に再ターゲティング可能なプロトタイプ・デコンパイラを開発した。
トークン化やトレーニングデータ選択などのパラメータが逆コンパイルの品質に与える影響について検討する。
トレーニングデータ、トレーニングされた逆コンパイルモデル、そして将来の言語に依存しない逆コンパイルの研究を促進するためのコードをリリースします。
論文 参考訳(メタデータ) (2022-12-17T20:45:59Z) - Learning C to x86 Translation: An Experiment in Neural Compilation [3.997680012976965]
コードからコードへのニューラルモデルは、コード翻訳、コード修正、逆コンパイルに使われている。
本研究では、Cコードからx86アセンブラを生成する方法を学ぶために、ニューラルネットワークのコンパイル、構築、評価を行う。
論文 参考訳(メタデータ) (2021-08-17T14:11:15Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
プログラム合成エンジンにおける部分的なプログラム表現手法について紹介する。
モジュラーニューラルネットワークとして実装された近似実行モデルを学ぶ。
これらのハイブリッドニューロシンボリック表現は、実行誘導型シンセサイザーがより強力な言語構成を使うことができることを示す。
論文 参考訳(メタデータ) (2020-12-23T20:40:18Z) - Neurocoder: Learning General-Purpose Computation Using Stored Neural
Programs [64.56890245622822]
ニューロコーダ(Neurocoder)は、汎用計算機の全く新しいクラスである。
共有可能なモジュール型プログラムのセットから関連するプログラムを構成することで、データ応答性のある方法で“コード”を行う。
モジュールプログラムを学習し、パターンシフトを厳しく処理し、新しいプログラムが学習されると、古いプログラムを記憶する新しい能力を示す。
論文 参考訳(メタデータ) (2020-09-24T01:39:16Z) - PolyDL: Polyhedral Optimizations for Creation of High Performance DL
primitives [55.79741270235602]
本稿では,Deep Learningプリミティブの高性能実装を自動的に生成するコンパイラアルゴリズムを提案する。
我々は多面体モデルを用いた新しいデータ再利用分析アルゴリズムを開発した。
また、このようなハイブリッドコンパイラとライブラリ使用の最小限のアプローチが、最先端のパフォーマンスをもたらすことを示す。
論文 参考訳(メタデータ) (2020-06-02T06:44:09Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。