
RetDec는 LLVM 기반의 재대상 지정 가능한 기계어 역컴파일러입니다.
경고
RetDec 프로젝트는 현재 자원 부족으로 제한된 유지보수 모드에 있습니다:
- 풀 리퀘스트는 환영합니다. 가능하면 지연 없이 우선적으로 검토됩니다.
- 이슈는 최대 한 분기까지 지연되어 처리됩니다. 기본 프로젝트 유지보수와 관련되지 않은 이슈는 적극적으로 해결되지 않습니다.
- 기본 프로젝트 유지보수는 계속됩니다.
- 매우 제한된 개발만 진행됩니다.
RetDec는 LLVM 기반의 재타겟 가능한 기계어 디컴파일러입니다.
디컴파일러는 특정 대상 아키텍처, 운영 체제 또는 실행 파일 형식에 국한되지 않습니다:
기능:
더 자세한 정보는 다음을 참조하세요:
RetDec을 얻고 설치하는 두 가지 방법이 있습니다:
retdec/share/retdec/README.md 파일의 사용 섹션에 있는 지침을 따릅니다.현재 Windows (7 이상), Linux, macOS 및 (실험적으로) FreeBSD를 지원합니다. 설치된 RetDec 버전은 약 5~6GB의 여유 디스크 공간이 필요합니다.
사용 중인 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가 이를 찾을 수 있도록 도와야 합니다. 일반적으로 두 가지 방법이 있습니다 (하나만 선택하여 사용):
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) 위키 페이지를 참조하거나, 사용 방법에 대한 데모는 [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 데이터베이스 방법을 통해 소스에서 직접 빌드하여 설치해야 합니다.