論文の概要: Improving type information inferred by decompilers with supervised
machine learning
- arxiv url: http://arxiv.org/abs/2101.08116v2
- Date: Wed, 24 Feb 2021 11:01:27 GMT
- ステータス: 処理完了
- システム内更新日: 2021-03-22 11:08:31.240283
- Title: Improving type information inferred by decompilers with supervised
machine learning
- Title(参考訳): 教師付き機械学習による逆コンパイラによる型情報の改善
- Authors: Javier Escalada (1), Ted Scully (2), Francisco Ortin (1 and 2) ((1)
University of Oviedo, (2) Cork Institute of Technology)
- Abstract要約: ソフトウェアリバースエンジニアリングでは、逆コンパイルはバイナリファイルからソースコードを回復するプロセスである。
関数によって返される高レベルな型を推測できる異なる分類モデルを構築する。
私たちのシステムは、79.1%のF1測定で関数戻り型を予測できますが、最良の逆コンパイラは30%のF1測定を得ます。
- 参考スコア(独自算出の注目度): 0.0
- License: http://creativecommons.org/licenses/by-nc-nd/4.0/
- Abstract: In software reverse engineering, decompilation is the process of recovering
source code from binary files. Decompilers are used when it is necessary to
understand or analyze software for which the source code is not available.
Although existing decompilers commonly obtain source code with the same
behavior as the binaries, that source code is usually hard to interpret and
certainly differs from the original code written by the programmer. Massive
codebases could be used to build supervised machine learning models aimed at
improving existing decompilers. In this article, we build different
classification models capable of inferring the high-level type returned by
functions, with significantly higher accuracy than existing decompilers. We
automatically instrument C source code to allow the association of binary
patterns with their corresponding high-level constructs. A dataset is created
with a collection of real open-source applications plus a huge number of
synthetic programs. Our system is able to predict function return types with a
79.1% F1-measure, whereas the best decompiler obtains a 30% F1-measure.
Moreover, we document the binary patterns used by our classifier to allow their
addition in the implementation of existing decompilers.
- Abstract(参考訳): ソフトウェアリバースエンジニアリングでは、逆コンパイルはバイナリファイルからソースコードを復元するプロセスである。
逆コンパイラは、ソースコードが入手できないソフトウェアを理解したり分析したりする際に使われる。
既存の逆コンパイラは一般的にバイナリと同じ動作のソースコードを取得するが、そのソースコードは解釈が困難であり、プログラマが書いた元のコードと確実に異なる。
大規模なコードベースを使用して、既存の逆コンパイラを改善するための教師付き機械学習モデルを構築することができる。
本稿では,関数によって返されるハイレベルな型を,既存の逆コンパイラよりもはるかに高い精度で推論可能な,異なる分類モデルを構築する。
我々はCのソースコードを自動で実装し、対応する高レベル構造とバイナリパターンの関連付けを可能にする。
データセットは、実際のオープンソースアプリケーションのコレクションと膨大な数の合成プログラムで作成されます。
本システムでは関数戻り型を79.1%のF1値で予測できるのに対して,最適な逆コンパイラでは30%のF1値が得られる。
さらに、既存のデコンパイラの実装で追加できるように、分類器が使用するバイナリパターンを文書化します。
関連論文リスト
- How Far Have We Gone in Binary Code Understanding Using Large Language Models [51.527805834378974]
バイナリコード理解におけるLarge Language Models(LLM)の有効性を評価するためのベンチマークを提案する。
評価の結果、既存のLLMはバイナリコードをある程度理解でき、それによってバイナリコード解析の効率が向上することが明らかとなった。
論文 参考訳(メタデータ) (2024-04-15T14:44:08Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - Refining Decompiled C Code with Large Language Models [15.76430362775126]
Cデコンパイラは、実行可能ファイルをソースコードに変換する。
一度再コンパイルされたC言語のソースコードは、元の実行ファイルと同じ機能を持つ実行ファイルを生成することが期待されている。
論文 参考訳(メタデータ) (2023-10-10T11:22:30Z) - CodeTF: One-stop Transformer Library for State-of-the-art Code LLM [72.1638273937025]
我々は、最先端のCode LLMとコードインテリジェンスのためのオープンソースのTransformerベースのライブラリであるCodeTFを紹介する。
我々のライブラリは、事前訓練されたコードLLMモデルと人気のあるコードベンチマークのコレクションをサポートします。
CodeTFが機械学習/生成AIとソフトウェア工学のギャップを埋められることを願っている。
論文 参考訳(メタデータ) (2023-05-31T05:24:48Z) - Revisiting Deep Learning for Variable Type Recovery [3.075963833361584]
DIRTYはトランスフォーマーベースのデコーダアーキテクチャで、変数名と型でデコンパイルされたコードを拡張することができる。
我々は、オープンソースのGhidraデコンパイラによって生成されたデータセット上で、DIRTYモデルを再学習することで、元のDIRTY結果を拡張する。
論文 参考訳(メタデータ) (2023-04-07T22:28:28Z) - Extending Source Code Pre-Trained Language Models to Summarise
Decompiled Binaries [4.0484792045035505]
ソースコードの事前訓練済み言語モデルを拡張して、逆コンパイルされたバイナリ関数を要約する。
このようなモデルの性能に及ぼす入力特性とデータ特性の影響について検討する。
BinT5は最先端のBLEU-4スコアを60.83、58.82、44.21で達成し、ソースを要約し、逆コンパイルし、合成的に削除した。
論文 参考訳(メタデータ) (2023-01-04T16:56:33Z) - Boosting Neural Networks to Decompile Optimized Binaries [13.255618541522436]
Decompilation は低レベルプログラム言語 (LPL) を機能的に等価な高レベルプログラム言語 (HPL) に変換することを目的としている。
本稿では,コンパイラ最適化バイナリをターゲットとしたNeurDPという新しい学習手法を提案する。
論文 参考訳(メタデータ) (2023-01-03T06:45:54Z) - Code Librarian: A Software Package Recommendation System [65.05559087332347]
オープンソースライブラリ用のリコメンデーションエンジンであるLibrarianを提示する。
1)プログラムのインポートライブラリで頻繁に使用されること、2)プログラムのインポートライブラリと似た機能を持つこと、3)開発者の実装と似た機能を持つこと、4)提供されるコードのコンテキストで効率的に使用できること、である。
論文 参考訳(メタデータ) (2022-10-11T12:30:05Z) - Pre-Training Representations of Binary Code Using Contrastive Learning [13.570375923483452]
本稿では、表現学習中にソースコードとコメント情報をバイナリコードに組み込む、バイナリcOde分析のためのContrastive Learning Model(COMBO)を提案する。
COMBOは、ソースコード、バイナリコード、コメントをコントラストコード表現学習に組み込んだ最初の言語表現モデルである。
論文 参考訳(メタデータ) (2022-10-11T02:39:06Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。