
警告
RetDec プロジェクトは現在、リソース不足のため 限定的なメンテナンスモード です:
- プルリクエストは歓迎します。可能であれば遅延なく優先的にレビューされます。
- イシューは最大四半期の遅延で対応されます。基本的なプロジェクトメンテナンスに関係しない限り、イシューは積極的には解決されません。
- 基本的なプロジェクトメンテナンスは継続します。
- 非常に限られた開発のみが行われています。
RetDec は、LLVM をベースにしたリターゲッタブルなマシンコード逆コンパイラです。
この逆コンパイラは、特定のターゲットアーキテクチャ、オペレーティングシステム、または実行可能ファイル形式に限定されません:
特徴:
詳細については、以下をご覧ください:
RetDec を入手してインストールするには、2つの方法があります:
retdec/share/retdec/README.md ファイルの 使用 セクションの指示に従います。現在、Windows(7以降)、Linux、macOS、および(実験的に)FreeBSD をサポートしています。インストールされた RetDec には、約5〜6 GBの空きディスク容量が必要です。
使用している RetDec のバージョンに対応した説明を読んでいることを確認してください。不明な場合は、インストール内の retdec/share/retdec/README.md ファイルを参照してください。
RetDec をインストールした後、Microsoft Visual C++ Redistributable for Visual Studio 2017 をインストールします。
以下のプログラムをインストールします:
test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:
$RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exe
詳細については、retdec-decompiler.exe に --help を付けて実行してください。
RetDec をインストールした後、ディストリビューションのパッケージマネージャを使用して以下のパッケージをインストールします:
test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
詳細については、retdec-decompiler に --help を付けて実行してください。
RetDec をインストールした後、以下のパッケージをインストールします:
test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
詳細については、retdec-decompiler に --help を付けて実行してください。
FreeBSD 用の事前ビルドされた「ports」パッケージは現在ありません。自分で逆コンパイラをビルドしてインストールする必要があります。手順は以下に説明します。
test.exe という名前のバイナリファイルを逆コンパイルするには、以下を実行します:
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
詳細については、retdec-decompiler に --help を付けて実行してください。
プロジェクトが CMake でビルドされている場合、さまざまな RetDec ライブラリを簡単に使用できます。RetDec のインストールには、必要なヘッダ、ライブラリ、および CMake スクリプトがすべて含まれています。
RetDec をシステムの標準インストール場所(例:/usr、/usr/local)にインストールした場合、そのコンポーネントを使用するために必要なことは:```cmake
find_package(retdec 5.0 REQUIRED
COMPONENTS
[...]
)
target_link_libraries(your-project
PUBLIC
retdec::
[...]
)
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
Arch Linux では、必要なパッケージは `pacman` でインストールできます:```sh
sudo pacman --needed -S base-devel cmake git openssl python3 autoconf automake libtool pkg-config m4 zlib upx doxygen graphviz
パッケージはHomebrewを使用してインストールすることを推奨します。
パッケージはFreeBSDのプリコンパイル済みパッケージリポジトリからpkgコマンドを使用してインストールするか、portsデータベースメソッドを使用してスクラッチからビルドします。