警告
RetDec 项目目前由于资源不足处于有限维护模式:
- 欢迎提交 Pull Requests。它们会被优先审查,尽可能不延迟。
- 对问题的响应可能会有最多一个季度的延迟。除非与基本项目维护相关,否则不会积极解决问题。
- 基本项目维护仍在继续。
- 仅进行非常有限的开发。
RetDec 是一个基于 LLVM 的可重定向机器码反编译器。
反编译器不限于任何特定的目标架构、操作系统或可执行文件格式:
特性:
更多信息,请查看我们的
有两种获取和安装 RetDec 的方式:
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
更多信息,请使用 --help 参数运行 retdec-decompiler.exe。
在安装 RetDec 后,通过您的发行版的包管理器安装以下软件包:
要反编译名为 test.exe 的二进制文件,运行:
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
更多信息,请使用 --help 参数运行 retdec-decompiler。
在安装 RetDec 后,安装以下软件包:
要反编译名为 test.exe 的二进制文件,运行:
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
更多信息,请使用 --help 参数运行 retdec-decompiler。
目前 FreeBSD 没有预构建的“ports”软件包。您需要自行构建和安装反编译器。过程如下所述。
要反编译名为 test.exe 的二进制文件,运行:
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
更多信息,请使用 --help 参数运行 retdec-decompiler。
您可以轻松地在项目中使用各种 RetDec 库——前提是它们使用 CMake 构建。RetDec 安装包含了所有必要的头文件、库和 CMake 脚本。
如果您将 RetDec 安装到系统的标准安装位置(例如 /usr、/usr/local),使用其组件只需要:```cmake
find_package(retdec 5.0 REQUIRED
COMPONENTS
[...]
)
target_link_libraries(your-project
PUBLIC
retdec::
[...]
)
如果你没有将 RetDec 安装在 CMake 可以自动发现的位置,则需要在使用 `find_package()` 之前帮助 CMake 找到它。通常有两种方法(请选择并使用其中一种):
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)
```
请参阅 [Repository Overview](https://github.com/avast/retdec/wiki/Repository-Overview) 维基页面查看可用的 RetDec 组件列表,或查看 [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/)
* 可选:[Doxygen](http://www.stack.nl/~dimitri/doxygen/) 和 [Graphviz](http://www.graphviz.org/) 用于生成 API 文档
在基于 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 数据库方法从源码编译。
pkg install cmake python37 git autotools
或者portsnap fetchportsnap extractcmake 的安装方式如下
whereis cmakecd /usr/ports/devel/cmakemake install clean注意:虽然 RetDec 现在支持系统级安装(#94),但除非你使用发行版的包管理器进行安装,否则我们建议将 RetDec 安装在本地指定目录中。原因是卸载时只需删除一个目录更加方便。要进行本地安装,请在运行 cmake 时使用 -DCMAKE_INSTALL_PREFIX=<path> 参数,其中 <path> 是 RetDec 将安装到的目录(例如 Linux 和 macOS 上的 $HOME/projects/retdec-install,Windows 上的 C:\projects\retdec-install)。