Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
retdec — RetDec は、LLVM ベースのリターゲッタブルなマシンコードデコンパイラです。 | Kitploit
ツール/GitHubGitHub/avast/retdec
静的分析リバースエンジニアリングマルウェア分析バイナリ解析
GitHubavast/retdec

retdec

RetDec は、LLVM ベースのリターゲッタブルなマシンコードデコンパイラです。

リポジトリを見るウェブサイト
8.6k9973ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

警告

RetDec プロジェクトは現在、リソース不足のため 限定的なメンテナンスモード です:

  • プルリクエストは歓迎します。可能であれば遅延なく優先的にレビューされます。
  • イシューは最大四半期の遅延で対応されます。基本的なプロジェクトメンテナンスに関係しない限り、イシューは積極的には解決されません。
  • 基本的なプロジェクトメンテナンスは継続します。
  • 非常に限られた開発のみが行われています。

RetDec

Travis CI build status TeamCity build status))/statusIcon) RetDec CI

RetDec は、LLVM をベースにしたリターゲッタブルなマシンコード逆コンパイラです。

この逆コンパイラは、特定のターゲットアーキテクチャ、オペレーティングシステム、または実行可能ファイル形式に限定されません:

  • 対応ファイル形式:ELF、PE、Mach-O、COFF、AR(アーカイブ)、Intel HEX、および生のマシンコード
  • 対応アーキテクチャ:
    • 32ビット:Intel x86、ARM、MIPS、PIC32、およびPowerPC
    • 64ビット:x86-64、ARM64(AArch64)

特徴:

  • 詳細情報を含む実行可能ファイルの静的解析。
  • コンパイラおよびパッカーの検出。
  • ローディングと命令デコード。
  • 静的にリンクされたライブラリコードのシグネチャベースの除去。
  • デバッグ情報(DWARF、PDB)の抽出と利用。
  • イディオムの再構築。
  • C++ クラス階層(RTTI、vtable)の検出と再構築。
  • C++ バイナリ(GCC、MSVC、Borland)からのシンボルのデマングリング。
  • 関数、型、高レベル構造の再構築。
  • 統合逆アセンブラ。
  • 2つの高レベル言語(C および Python 風言語)での出力。
  • コールグラフ、制御フローグラフ、および各種統計情報の生成。

詳細については、以下をご覧ください:

  • Wiki(準備中)
  • Botconf 2017 トーク:スライド、動画
  • REcon Montreal 2018 トーク:スライド
  • 出版物

インストール

RetDec を入手してインストールするには、2つの方法があります:

  1. 事前にビルドされた安定版または最先端版パッケージをダウンロードして解凍し、解凍後に retdec/share/retdec/README.md ファイルの 使用 セクションの指示に従います。
  2. ビルドとインストールセクションに従って、自分でソースから RetDec をビルドします。インストール後、以下の指示に従ってください。

現在、Windows(7以降)、Linux、macOS、および(実験的に)FreeBSD をサポートしています。インストールされた RetDec には、約5〜6 GBの空きディスク容量が必要です。

使用方法

使用している RetDec のバージョンに対応した説明を読んでいることを確認してください。不明な場合は、インストール内の retdec/share/retdec/README.md ファイルを参照してください。

Windows

  1. RetDec をインストールした後、Microsoft Visual C++ Redistributable for Visual Studio 2017 をインストールします。

  2. 以下のプログラムをインストールします:

    • UPX(オプション:前処理段階で UPX アンパッカーを使用する場合)
    • Graphviz(オプション:コールグラフまたは制御フローグラフを生成する場合)
  3. test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:

    root@kitploit:~
    $RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exe
    

    詳細については、retdec-decompiler.exe に --help を付けて実行してください。

Linux

  1. RetDec をインストールした後、ディストリビューションのパッケージマネージャを使用して以下のパッケージをインストールします:

    • UPX(オプション:前処理段階で UPX アンパッカーを使用する場合)
    • Graphviz(オプション:コールグラフまたは制御フローグラフを生成する場合)
  2. test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    詳細については、retdec-decompiler に --help を付けて実行してください。

macOS

  1. RetDec をインストールした後、以下のパッケージをインストールします:

    • UPX(オプション:前処理段階で UPX アンパッカーを使用する場合)
    • Graphviz(オプション:コールグラフまたは制御フローグラフを生成する場合)
  2. test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    詳細については、retdec-decompiler に --help を付けて実行してください。

FreeBSD(実験的)

  1. FreeBSD 用の事前ビルドされた「ports」パッケージは現在ありません。自分で逆コンパイラをビルドしてインストールする必要があります。手順は以下に説明します。

  2. test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    詳細については、retdec-decompiler に --help を付けて実行してください。

RetDec ライブラリの使用

プロジェクトが CMake でビルドされている場合、さまざまな RetDec ライブラリを簡単に使用できます。RetDec のインストールには、必要なヘッダ、ライブラリ、および CMake スクリプトがすべて含まれています。

RetDec をシステムの標準インストール場所(例:/usr、/usr/local)にインストールした場合、そのコンポーネントを使用するために必要なことは:```cmake find_package(retdec 5.0 REQUIRED COMPONENTS [...] ) target_link_libraries(your-project PUBLIC retdec:: [...] )

root@kitploit:~
RetDecを自動的に検出できない場所にインストールした場合は、`find_package()`を使用する前にCMakeがそれを見つけられるようにする必要があります。一般的には、以下の2つの方法があります(1つだけを選択して使用してください)。

1. RetDecのインストールディレクトリを[`CMAKE_PREFIX_PATH`](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html)に追加します:
    ```cmake
    list(APPEND CMAKE_PREFIX_PATH ${RETDEC_INSTALL_DIR})
    ```

2. インストールされたRetDec CMakeスクリプトへのパスを`retdec_DIR`に設定します:
    ```cmake
    set(retdec_DIR ${RETDEC_INSTALL_DIR}/share/retdec/cmake)
    ```

利用可能なRetDecコンポーネントの一覧については、[Repository Overview](https://github.com/avast/retdec/wiki/Repository-Overview)のWikiページを、それらの使用方法のデモについては、[retdec-build-system-tests](https://github.com/avast/retdec-build-system-tests)を参照してください。

## ビルドとインストール

このセクションでは、RetDecのローカルビルドとインストールについて説明します。Dockerを使用する場合の手順については、次のセクションで説明します。

### 必要条件

#### Linux

* C++17をサポートするC++コンパイラおよび標準C++ライブラリ(例:GCC >= 7)
* [CMake](https://cmake.org/)(バージョン >= 3.6)
* [Git](https://git-scm.com/)
* [OpenSSL](https://www.openssl.org/)(バージョン >= 1.1.1)
* [Python](https://www.python.org/)(バージョン >= 3.4)
* [autotools](https://en.wikipedia.org/wiki/GNU_Build_System)([autoconf](https://www.gnu.org/software/autoconf/autoconf.html)、[automake](https://www.gnu.org/software/automake/)、および[libtool](https://www.gnu.org/software/libtool/))
* [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
* [m4](https://www.gnu.org/software/m4/m4.html)
* [zlib](http://zlib.net/)
* オプション: APIドキュメント生成用の[Doxygen](http://www.stack.nl/~dimitri/doxygen/)および[Graphviz](http://www.graphviz.org/)

Debianベースのディストリビューション(例:Ubuntu)では、必要なパッケージは`apt-get`でインストールできます。```sh
sudo apt-get install build-essential cmake git openssl libssl-dev python3 autoconf automake libtool pkg-config m4 zlib1g-dev upx doxygen graphviz

RPMベースのディストリビューション(例:Fedora)では、必要なパッケージはdnfでインストールできます:```sh sudo dnf install gcc gcc-c++ cmake make git openssl openssl-devel python3 autoconf automake libtool pkg-config m4 zlib-devel upx doxygen graphviz

root@kitploit:~
Arch Linux では、必要なパッケージは `pacman` でインストールできます:```sh
sudo pacman --needed -S base-devel cmake git openssl python3 autoconf automake libtool pkg-config m4 zlib upx doxygen graphviz

Windows

  • Microsoft Visual C++(バージョン >= Visual Studio 2017 バージョン 15.7)
  • CMake(バージョン >= 3.6)
  • Git
  • OpenSSL(バージョン >= 1.1.1)
  • Python(バージョン >= 3.4)
  • オプション: Doxygen と Graphviz(APIドキュメント生成用)

macOS

パッケージはHomebrewを使用してインストールすることを推奨します。

  • macOS >= 10.15
  • 完全なXcodeインストール(コマンドラインツールを含む、#425および#433を参照)
  • CMake(バージョン >= 3.6)
  • Git
  • OpenSSL(バージョン >= 1.1.1)
  • Python(バージョン >= 3.4)
  • autotools([autoconf](https://www.gnu.org/software/autoconf/autoconf.html)、[automake](https://www.gnu.org/software/automake/)、および[libtool](https://www.gnu.org/software/libtool/))
  • オプション: Doxygen と Graphviz(APIドキュメント生成用)

FreeBSD(実験的)

パッケージはFreeBSDのプリコンパイル済みパッケージリポジトリからpkgコマンドを使用してインストールするか、portsデータベースメソッドを使用してスクラッチからビルドします。

  • 完全な「pkg」ツールの手順: pkgメソッドのハンドブック
    • pkg install cmake python37 git autotools または
  • 完全な「ports」の手順: portsメソッドのハンドブック
    • portsnap fetch
    • portsnap extract
  • 例えば、cmakeの場合は
    • whereis cmake
    • cd /usr/ports/devel/cmake
    • make install clean

プロセス

注: RetDecは現在システム全体へのインストールをサポートしていますが(#94)、ディストリビューションのパッケージマネージャを使用してインストールしない限り、RetDecを指定したディレクトリにローカルインストールすることを推奨します。その理由は、アンインストールが簡単になり、単一のディレクトリを削除するだけで済むからです。ローカルインストールを実行するには、cmakeに-DCMAKE_INSTALL_PREFIX=<path>パラメータを指定して実行します。ここで、<path>はRetDecがインストールされるディレクトリです(例: LinuxおよびmacOSでは$HOME/projects/retdec-install、WindowsではC:\projects\retdec-install)。

  • リポジトリをクローン:
    • git clone https://github.com/avast/retdec
  • Linux:
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN(Nは並列ビルドに使用するプロセス数で、通常はコア数+1が最も高速なコンパイル時間になります)
    • make install
  • Windows:
    • コマンドプロンプトを開きます(例: cmd.exe)
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path> -G<generator>
    • cmake --build . --config Release -- -m

cmakeに以下のパラメータを渡す必要があります:

  • -DCMAKE_INSTALL_PREFIX=<path> インストールパスを<path>に設定します。Windowsでバックスラッシュを使用する場合はパスを引用符で囲んでください(例: -DCMAKE_INSTALL_PREFIX="C:\retdec")。
  • (Windowsのみ)-G<generator>は、Visual Studio 2017を使用した32ビットビルドの場合は-G"Visual Studio 15 2017"、64ビットビルドの場合は-G"Visual Studio 15 2017 Win64"です。それ以降のバージョンのVisual Studioも使用できます。

cmakeに以下の追加パラメータを渡すこともできます:

  • -DRETDEC_DOC=ON APIドキュメント付きでビルドする(DoxygenとGraphvizが必要、デフォルトでは無効)。
  • -DRETDEC_TESTS=ON テストを含めてビルドする(デフォルトでは無効)。
  • -DRETDEC_DEV_TOOLS=ON 開発ツールを含めてビルドする(デフォルトでは無効)。
  • -DRETDEC_COMPILE_YARA=OFF インストール手順でYARAルールのコンパイルを無効にする(デフォルトでは有効)。
  • -DCMAKE_BUILD_TYPE=Debug 開発時に有用なデバッグ情報を含めてビルドする。デフォルトではプロジェクトはReleaseモードでビルドされます。Windowsでは効果がありませんが、cmake --build .に--config Debugパラメータを指定することで同様のことが実現できます。
  • -D<dep>_LOCAL_DIR=<path> ここで<dep>は{CAPSTONE, GOOGLETEST, KEYSTONE, LLVM, YARA, YARAMOD}のいずれかです(例: -DCAPSTONE_LOCAL_DIR=<path>)。ビルド時に新しいコピーをダウンロードする代わりに、<path>にあるローカルリポジトリクローンをRetDec依存関係として使用します。複数のオプションを同時に使用できます。

Dockerでのビルド

Dockerサポートはコミュニティによって維持されています。問題が発生した場合や改善の提案がある場合は、IssueまたはPRを開いてください。

イメージのビルド

Dockerでビルドする場合、必要なライブラリをローカルにインストールする必要はありません。これはビルドツールチェーン全体を設定せずにRetDecを試すのに適したオプションです。

RetDec Dockerイメージをビルドするには、次のコマンドを実行します``` docker build -t retdec - < Dockerfile

root@kitploit:~
これは、このリポジトリのmasterブランチからイメージをビルドします。
リポジトリのローカルコピーを使用してイメージをビルドするには、開発用Dockerfile, `Dockerfile.dev` を使用します:```
docker build -t retdec:dev . -f Dockerfile.dev

コンテナの実行

あなたのuidが1000でない場合、入力バイナリファイルを含むディレクトリがRetDecからアクセス可能であることを確認してください:``` chmod 0777 /path/to/local/directory

root@kitploit:~
これで、コンテナ内でデコンパイラを実行できます:```
docker run --rm -v /path/to/local/directory:/destination retdec retdec-decompiler /destination/binary

注意:/destination の部分は変更しないでください。/path/to/local/directory だけを変更してください。出力ファイルは /path/to/local/directory に生成されます。

ナイトリービルド

最新の master ブランチのコミットから、最新の RetDec パッケージを2つの方法で生成しています:

  • TeamCity サーバーを使用
  • GitHub Actions を使用。

これらのビルドは主に RetDec の開発者、コントリビューター、製品を試す他の人々(例:公式リリースに存在する問題が現在の master でも存在するかテストするなど)を対象としています。

ご自由にお使いいただけますが、お使いのシステム(特に Linux 版)で動作する保証はなく、退行が発生する可能性があることにご注意ください。安定した RetDec バージョンを入手するには、最新の公式プレビルドパッケージをダウンロードするか、最新の RetDec バージョンタグをビルドしてください。

TeamCity

  • Windows Server 2016, バージョン 10.0
  • Ubuntu Bionic Linux, バージョン 18.04
  • Mac OS X, バージョン 10.14.6

Github Actions

macOS、Linux、Windows 向けのビルドは、最新の RetDec CI ワークフロー実行 で見つけることができます。

プロジェクトドキュメント

master ブランチの最新コミットに対応した最新の Doxygen 生成ソフトウェアリファレンスについては、プロジェクトドキュメント を参照してください。

関連リポジトリ

  • retdec-idaplugin -- RetDec を IDA(インタラクティブディスアセンブラ)に埋め込み、使用を大幅に簡単にします。
  • retdec-r2plugin -- RetDec を Radare2 に埋め込み、使用を大幅に簡単にします。
  • retdec-regression-tests-framework -- RetDec および関連ツールの回帰テストを作成・実行するためのフレームワーク。RetDec プロジェクトに貢献する予定がある場合は必須です。
  • retdec-regression-tests -- RetDec および関連ツールの回帰テストスイート。
  • retdec-build-system-tests -- RetDec のビルドシステムのテストスイート。RetDec ライブラリの使用方法のデモ集としても利用できます。
  • vim-syntax-retdecdsm -- RetDec の逆アセンブラの出力(.dsm ファイル)用の Vim 構文ハイライトファイル。

ライセンス

Copyright (c) 2017 Avast Software、MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。

RetDec は修正版の PeLib ライブラリを組み込んでいます。Avast Software が追加した新しいモジュールは MIT ライセンスの下でライセンスされています。元のソースは以下のライセンスの下でライセンスされています:

  • Copyright (c) 2004 - 2005 Sebastian Porst ([email protected])、zlib/libpng ライセンスの下でライセンスされています。詳細は LICENSE-PELIB ファイルを参照してください。

RetDec は、LICENSE-THIRD-PARTY ファイルに記載されているサードパーティライブラリやその他のリソースを、そのライセンスとともに使用しています。

コントリビューション

RetDec コントリビューションガイドライン を参照してください。

謝辞

このソフトウェアは、研究資金 TACR(チェコ共和国技術庁)、ALFA プログラム番号 TA01010667 の支援を受けています。

ツールをダウンロード
  • cmake --build . --config Release --target install
  • または、Visual Studio IDEでcmakeによって生成されたretdec.slnを開くこともできます
  • macOS:
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN(Nは並列ビルドに使用するプロセス数で、通常はコア数+1が最も高速なコンパイル時間になります)
    • make install
  • FreeBSD:
    • sudo pkg install git cmake
    • git clone https://github.com/avast/retdec
    • cd retdec
    • mkdir build && cd build
    • root@kitploit:~
      # FreeBSD (and other BSDs) do need cmake, python3, git, autotools. OpenSSL is pre-installed in the OS but check its version.
      # Later versions may be available for each of the packages.
      # See what is installed:
      sudo pkg info cmake python37 autotools
      # Install/upgrade them:
      sudo pkg install cmake python37 autotools
      
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN(Nは並列ビルドに使用するプロセス数で、通常はコア数+1が最も高速なコンパイル時間になります)
    • make install
  • -DRETDEC_ENABLE_<component>=ON 指定したコンポーネントのみ(複数可)とその依存関係をビルドします。デフォルトではすべてのコンポーネントがビルドされます。このメカニズムで少なくとも1つのコンポーネントが有効になっている場合、明示的に有効にされていない他のコンポーネント(および有効なコンポーネントの依存関係として必要ないもの)はビルドされません。利用可能なすべてのコンポーネントオプションについてはcmake/options.cmakeを参照してください。
    • -DRETDEC_ENABLE_ALL=ON を使用してすべてのコンポーネントを(再)有効にできます。
    • または、-DRETDEC_ENABLE=<コンマ区切りのコンポーネントリスト>を-DRETDEC_ENABLE_<component>=ONの代わりに使用できます(例: -DRETDEC_ENABLE=fileformat,loader,ctypesparserは-DRETDEC_ENABLE_FILEFORMAT=ON -DRETDEC_ENABLE_LOADER=ON -DRETDEC_ENABLE_CTYPESPARSER=ONと同等です)。