コンテンツにスキップ

RetDec - リターゲット可能なマシンコードデコンパイラー チートシート

RetDec - リターゲット可能なマシンコードデコンパイラー チートシート

RetDec(リターゲット可能なデコンパイラー、Avastによる)は、コンパイル済みバイナリーを読み取り可能な高レベルコードに変換するオープンソースマシンコードデコンパイラーです。「リターゲット可能」が主な特性です。多くの命令セットを持つ1つのアーキテクチャーに構築されるのではなく、x86、ARM、MIPS、PIC32、PowerPCを多くの命令セット—LLVM IRに持ち上げ、その共通表現をCまたはPythonのようなプセクドコードにデコンパイルします。スタンドアロンで実行され、IDA、Ghidra、radare2と統合します。

インストール

MethodHow
Release buildGitHub Releasesからプリビルド パッケージをダウンロード
From sourceCMakeビルド(リポジトリのビルド ドキュメントを参照)
Dockerdocker run -v "$PWD:/dst" retdec/retdec
Verifyretdec-decompiler --version

基本的なデコンパイル

CommandDescription
retdec-decompiler binary.exebinary.exe.cにデコンパイル
retdec-decompiler -o out.c binary出力パスを選択
retdec-decompiler --backend-no-debug binaryクリーナー出力
retdec-decompiler --cleanup binary中間ファイルを削除
retdec-decompiler --help完全なオプション リスト
# デコンパイルして結果を読む
retdec-decompiler suspicious.exe
less suspicious.exe.c

出力形式

FlagProduces
(default)Cソース
-f pyPythonのようなプセクドコード
--backend-emit-cfg制御フロー グラフ
--backend-emit-cgコール グラフ
--config out.json構造化分析設定/結果
LLVM IRデコンパイル中の中間.ll出力

サポートされているアーキテクチャー

ArchitectureFormats
x86 / x86-64PE, ELF, Mach-O
ARM / ThumbELF, PE, raw
MIPSELF, raw
PIC32ELF, Intel HEX
PowerPCELF

幅広いアーキテクチャー対応により、RetDecは特に組み込みおよびファームウェア作業に有用です。MIPS および PIC32 バイナリーが一般的であり、メインストリーム デコンパイラー はより少ないを提供します。

有用なオプション

OptionEffect
-a archアーキテクチャーを強制
-e endianエンディアン設定(little/big
-m modeモード:binrawll
--raw-entry-point ADDRロー バイナリーのエントリ ポイント
--raw-section-vma ADDRロー コードの読み込みアドレス
--select-ranges A-Bアドレス範囲のみをデコンパイル
--select-functions f1,f2特定の関数のみをデコンパイル
# ロー ファームウェア blob:RetDecに読み込み方法を通知
retdec-decompiler -m raw -a mips -e big \
  --raw-entry-point 0x80000000 --raw-section-vma 0x80000000 firmware.bin

分析機能

FeatureProvides
File format detectionPE/ELF/Mach-O解析
Compiler/packer detectionツールチェーン フィンガープリント
Signature-based function ID静的にリンクされたライブラリー コードを認識
Type reconstruction構造とタイプの復元
Debug info useDWARF/利用可能な場合のPDB

ライブラリー関数の識別は実際には重要です:静的にリンクされたlibcの数千行をスキップし、アプリケーション自体のロジックに焦点を当てることができます。

統合

ToolPlugin
IDA ProRetDec IDAプラグイン
GhidraRetDec Ghidraプラグイン
radare2r2retdec
APICLI/設定を介してプログラム的にデコンパイル

RetDec対他のデコンパイラー

AspectRetDecGhidraHex-Rays (IDA)Binary Ninja
CostFree/open-sourceFree/open-sourceCommercialCommercial
Architectures多い(PIC32を含む)多い多い(デコンパイラー ライセンス)多い
Interactiveいいえ(バッチ)はい(GUI)はいはい
Best forバッチ/スクリプト デコンパイル、組み込みインタラクティブRE最高品質出力モダンAPI/UX

インタラクティブな作業用にGhidraを補完します—RetDecは自動パイプラインと異常なアーキテクチャーで輝きます。

リソース