
Reko (스웨덴어: "decent, obliging")는 기계어 바이너리를 위한 디컴파일러입니다. 이 프로젝트는 GNU 일반 공중 사용 허가서(GNU General Public License)에 따라 자유롭게 사용할 수 있습니다.
프로젝트는 프론트엔드, 코어 디컴파일 엔진, 그리고 목표 달성을 돕는 백엔드로 구성됩니다. 현재 작성 시점에서 명령줄, Windows GUI, ASP.NET 프론트엔드가 존재합니다. 디컴파일 엔진은 프론트엔드로부터 개별 실행 파일이나 디컴파일러 프로젝트 파일 형태로 입력을 받습니다. Reko 프로젝트 파일에는 바이너리 파일에 대한 추가 정보가 포함되어 있어 디컴파일 과정이나 출력 형식 지정에 도움이 됩니다. 디컴파일 엔진은 이후 입력된 바이너리를 분석합니다.
Reko는 최소한의 사용자 개입으로 다양한 프로세서 아키텍처와 실행 파일 형식의 디컴파일을 지원하는 것을 목표로 합니다. 전체 목록은 지원되는 바이너리 페이지를 참조하세요.
많은 소프트웨어 라이선스가 기계어 바이너리의 디컴파일이나 기타 리버스 엔지니어링을 금지하고 있음을 유의하십시오. 이 디컴파일러는 바이너리를 디컴파일할 법적 권리가 있는 경우에만 사용하십시오(예: 바이너리가 본인 소유인 경우).
공식 릴리스는 몇 달에 한 번씩 Github와 SourceForge에 게시됩니다. Reko를 직접 빌드할 수 없거나 원하지 않는 사용자는 Cirrus CI 통합 빌더 또는 Github Actions 통합 빌더의 출력물을 다운로드할 수 있습니다. 물론 소스에서 프로젝트를 빌드할 수도 있습니다. 아래 "해킹" 섹션을 참조하세요.
먼저 다음 필수 소프트웨어가 시스템에 설치되어 있어야 합니다:
적절한 설치 프로그램을 다운로드하여 대상 컴퓨터에서 실행하십시오.
설치 후, 통합 빌드 서버에서 바이너리를 직접 다운로드하거나 소스에서 Reko를 빌드(아래 해킹 참조)하여 진행할 수 있습니다.
Reko의 다양한 기능에 익숙해지려면 사용자 가이드를 읽어보세요. 프로젝트의 내부 동작에 관심이 있다면 위키를 참조하십시오.
발생하는 모든 문제를 보고하거나 Reko 관련 질문은 이슈 트래커에 남겨주세요. Reko Gitter.im 채팅방을 이용할 수도 있습니다. Reko는 자원봉사자들이 여가 시간에 빌드하므로 응답 시간 기대치를 조정해 주시기 바랍니다.
Reko를 빌드하려면 https://github.com/uxmal/reko를 클론하는 것으로 시작하세요.
솔루션 파일 Reko-decompiler.slnx를 빌드하기 위해 IDE 또는 명령줄을 사용할 수 있습니다.
Reko는 컴파일을 위해 .NET 8.0 SDK가 필요합니다.
IDE 사용자라면 최신 버전의 Visual Studio 2022를 사용하세요.
명령줄로 빌드하려면 다음 명령을 사용하십시오.
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
{config}를 Debug 또는 Release로, {platform}을 x64 또는 x86으로 바꾸세요.
참고: 여전히 컴파일할 수 없는 경우 알려주시면 문제 해결을 도와드리겠습니다.
코드 기여에 관심이 있다면 로드맵에서 탐색할 영역을 확인하세요. 위키에는 Reko 프로젝트의 내부 동작에 대한 추가 정보가 있습니다. 스타일 가이드를 참조하십시오.
개발 머신에 WiX 도구셋을 설치하지 않은 경우 Visual Studio에서 솔루션을 로드할 때 경고 또는 오류가 발생합니다. 경고는 무시해도 안전합니다. WiX 도구셋은 MSI 설치 프로그램 패키지를 만들 때만 사용됩니다. 프로젝트를 이미 컴파일할 수 있다면 설치 프로그램을 빌드할 필요가 없습니다. 빌드 프로세스는 필요한 모든 파일을 단일 디렉터리에 복사합니다. WiX 도구 체인으로 MSI 설치 프로그램을 빌드하려면 여기에서 다운로드하십시오: http://wixtoolset.org/releases/
Visual Studio에서 수행하는 작업에 따라 NativeProxy를 다시 빌드하려고 시도할 수 있으며, 이는 CMake에 의존합니다. CMake를 설치하고 PATH에 추가했는지 확인하거나, Visual Studio에서 해당 프로젝트를 비활성화할 수 있습니다.
Visual Studio의 일부로 CMake가 설치되어 있으면 Developer Command Prompt에서 msbuild를 실행하기에 충분하지만,
전역 PATH에 추가하지 않는 한 Visual Studio 내에서 빌드할 때는 충분하지 않습니다.
CMake를 외부에 설치하면 설치 과정에서 PATH에 추가할 수 있습니다.
참고: 특정 Visual Studio 버전에서 프로젝트를 로드할 때 문제가 발생할 수 있습니다. Visual Studio가 "Running Background Tasks"에서 멈추고 프로젝트를 빌드할 수 없게 됩니다. 해결 방법은 솔루션 탐색기에서 "NativeProxy" 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "프로젝트 언로드"를 선택하는 것입니다. 그러면 프로젝트가 올바르게 로드되고 빌드됩니다. 이 문제는 명령줄에서 빌드할 때는 발생하지 않습니다.
솔루션 폴더 Drivers에는 사용자 인터페이스 역할을 하는 실행 파일이 포함되어 있습니다.
하위 디렉터리 WindowsDecompiler에는 Windows Forms 사용자 인터페이스용 GUI 클라이언트가 있습니다.
하위 디렉터리 AvaloniaShell에는 크로스 플랫폼 Avalonia 사용자 인터페이스용 GUI 클라이언트가 있습니다(아직 개발 중).
CmdLine은 명령줄 드라이버입니다.
최신 릴리스는 릴리스 로그를 참조하십시오.