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