論文の概要: STRIDE: Simple Type Recognition In Decompiled Executables
- arxiv url: http://arxiv.org/abs/2407.02733v1
- Date: Wed, 3 Jul 2024 01:09:41 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-04 17:54:48.130914
- Title: STRIDE: Simple Type Recognition In Decompiled Executables
- Title(参考訳): STRIDE:decompiled Executablesにおける単純な型認識
- Authors: Harrison Green, Edward J. Schwartz, Claire Le Goues, Bogdan Vasilescu,
- Abstract要約: そこで本研究では,デコンパイラトークンのシーケンスをトレーニングデータと一致させることで,変数名や型を予測する手法STRIDEを提案する。
3つのベンチマークデータセットで評価した結果、STRIDEは可変リタイピングとリネームの両方において、最先端の機械学習モデルに匹敵するパフォーマンスを実現していることがわかった。
- 参考スコア(独自算出の注目度): 16.767295743254458
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Decompilers are widely used by security researchers and developers to reverse engineer executable code. While modern decompilers are adept at recovering instructions, control flow, and function boundaries, some useful information from the original source code, such as variable types and names, is lost during the compilation process. Our work aims to predict these variable types and names from the remaining information. We propose STRIDE, a lightweight technique that predicts variable names and types by matching sequences of decompiler tokens to those found in training data. We evaluate it on three benchmark datasets and find that STRIDE achieves comparable performance to state-of-the-art machine learning models for both variable retyping and renaming while being much simpler and faster. We perform a detailed comparison with two recent SOTA transformer-based models in order to understand the specific factors that make our technique effective. We implemented STRIDE in fewer than 1000 lines of Python and have open-sourced it under a permissive license at https://github.com/hgarrereyn/STRIDE.
- Abstract(参考訳): デコンパイラは、セキュリティ研究者や開発者が実行可能コードをリバースエンジニアリングするために広く使用されている。
現代の逆コンパイラは命令、制御フロー、関数境界の回復に適しているが、変数型や名前などのソースコードからの有用な情報は、コンパイルプロセス中に失われる。
我々の研究は、残りの情報からこれらの変数の型と名前を予測することを目的としている。
本稿では,トレーニングデータに記述されたデコンパイラトークンのシーケンスを一致させることで,変数名や型を予測する軽量な手法STRIDEを提案する。
3つのベンチマークデータセットで評価した結果、STRIDEは可変リタイピングとリネームの両方において、最先端の機械学習モデルに匹敵するパフォーマンスを達成し、よりシンプルで高速であることがわかった。
我々は,最近の2つのSOTA変換器モデルとの詳細な比較を行い,本手法を効果的にするための具体的な要因を解明した。
STRIDEを1000行未満のPythonで実装し、https://github.com/hgarrereyn/STRIDEでパーミッシブライセンスでオープンソース化しました。
関連論文リスト
- SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - 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) - One Embedder, Any Task: Instruction-Finetuned Text Embeddings [105.82772523968961]
INSTRUCTORはタスク命令のテキスト埋め込みを計算するための新しい方法である。
すべてのテキスト入力はユースケースを説明する指示と共に埋め込まれる。
InSTRUCTORを70の埋め込み評価タスクで評価する。
論文 参考訳(メタデータ) (2022-12-19T18:57:05Z) - MASTER: Multi-task Pre-trained Bottlenecked Masked Autoencoders are
Better Dense Retrievers [140.0479479231558]
本研究では,様々な事前学習タスクをマルチタスク事前学習モデル(MASTER)に統合することを目的とする。
MASTERは共有エンコーダのマルチデコーダアーキテクチャを利用して、タスク全体にわたる豊富なセマンティック情報を高密度ベクトルに圧縮する表現ボトルネックを構築することができる。
論文 参考訳(メタデータ) (2022-12-15T13:57:07Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z) - VarCLR: Variable Semantic Representation Pre-training via Contrastive
Learning [84.70916463298109]
VarCLRは変数名のセマンティック表現を学ぶための新しいアプローチである。
VarCLRはコントラスト学習に適しており、明示的に類似した入力間の距離を最小化することを目的としている。
VarCLRはBERTのような洗練された汎用言語モデルを効果的に適用できることを示す。
論文 参考訳(メタデータ) (2021-12-05T18:40:32Z) - Variable Name Recovery in Decompiled Binary Code using Constrained
Masked Language Modeling [17.377157455292817]
逆コンパイル(英: Decompilation)とは、バイナリプログラムをソースコードなどのハイレベルな表現に変換する手順である。
マスク型言語モデリング(byte-pair)に基づく逆コンパイルコードの変数名を推論する新しい手法を提案する。
トレーニングを受けたVarBERTモデルは、元のソースコードに存在する変数名と同じ変数名を最大84.15%まで予測できることを示しています。
論文 参考訳(メタデータ) (2021-03-23T19:09:22Z) - Improving type information inferred by decompilers with supervised
machine learning [0.0]
ソフトウェアリバースエンジニアリングでは、逆コンパイルはバイナリファイルからソースコードを回復するプロセスである。
関数によって返される高レベルな型を推測できる異なる分類モデルを構築する。
私たちのシステムは、79.1%のF1測定で関数戻り型を予測できますが、最良の逆コンパイラは30%のF1測定を得ます。
論文 参考訳(メタデータ) (2021-01-19T11:45:46Z) - Embedding Java Classes with code2vec: Improvements from Variable
Obfuscation [0.716879432974126]
本稿では,code2vecモデルのトレーニング中に変数名を難読化することで,特定の名前ではなくコード構造に頼らざるを得ないことを示す。
この結果から,変数名を難読化することは,変数の命名に不便で,より正確にコードの意味を反映した埋め込みモデルを生み出すことが示唆された。
論文 参考訳(メタデータ) (2020-04-06T19:05:18Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。