Reko (sueco: "decente, servicial") es un descompilador de códigos binarios de máquina. Este proyecto está disponible gratuitamente bajo la Licencia Pública General GNU.
El proyecto consta de interfaces, un motor descompilador central y back-ends para ayudarlo a lograr sus objetivos. Al momento de escribir este artículo, existen una línea de comandos, una GUI de Windows y una interfaz ASP.NET. El motor descompilador recibe entradas de las interfaces en forma de archivos ejecutables individuales o archivos de proyecto del descompilador. Los archivos de proyecto de Reko contienen información adicional sobre un archivo binario, útil para el proceso de descompilación o para formatear la salida. Luego, el motor descompilador procede a analizar el binario de entrada.
Vista de mapa de bytes de un ejecutable binario ARM cargado | Vista descompilada de un ejecutable binario ARM cargado |
Reko tiene la ambición de soportar la descompilación de varias arquitecturas de procesador y formatos de archivos ejecutables con una mínima intervención del usuario. Para obtener una lista completa, consulte la página de binarios admitidos.
Tenga en cuenta que muchas licencias de software prohíben la descompilación u otra ingeniería inversa de sus binarios de código de máquina. Utilice este descompilador sólo si tiene derechos legales para descompilar el binario (por ejemplo, si el binario es suyo).
Los lanzamientos oficiales se publican cada pocos meses en Github y SourceForge. Los usuarios que no pueden o no quieren construir Reko ellos mismos pueden descargar el resultado del generador de integración Cirrus CI o el generador de integración Github Actions. Naturalmente, puedes construir el proyecto a partir de las fuentes: consulta "Hacking" a continuación.
Primero se debe instalar el siguiente software previo en su máquina:
.NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
Descargue un instalador apropiado y ejecútelo en la máquina de destino.
Después de la instalación, puede continuar descargando archivos binarios directamente desde el servidor de compilación de integración o compilando Reko a partir de fuentes (consulte Hacking
a continuación).
Para familiarizarse con las diversas funciones de Reko, puede leer la guía del usuario. Si está interesado en el funcionamiento interno del proyecto, consulte la wiki.
Puede informar cualquier problema que encuentre o hacer cualquier pregunta relacionada con Reko en el rastreador de problemas. También puedes probar la sala de chat de Reko Gitter.im. Reko se construye gracias a los esfuerzos de los voluntarios en su tiempo libre, así que ajuste sus expectativas de tiempo de respuesta en consecuencia.
Para compilar reko, comience clonando https://github.com/uxmal/reko. Puede utilizar un IDE o la línea de comandos para crear el archivo de solución Reko-decompiler.sln
. Reko requiere el SDK .NET 6.0 para compilar. Si es usuario de IDE, use una versión reciente de Visual Studio 2022. Si desea compilar usando la línea de comando, use el comando
dotnet msbuild -p:Platform={plataforma} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
Reemplace {config}
con Debug
o Release
y {platform}
con x64
o x86
.
Nota : avísenos si aún no puede compilar, para que podamos ayudarlo a solucionar el problema.
Si está interesado en contribuir con código, consulte la hoja de ruta para conocer las áreas que puede explorar. La Wiki tiene más información sobre el funcionamiento interno del proyecto Reko. Por favor consulta la guía de estilo.
Recibirá advertencias o errores al cargar la solución en Visual Studio si no ha instalado el conjunto de herramientas WiX en su máquina de desarrollo. Puede ignorar las advertencias con seguridad; El conjunto de herramientas WiX solo se usa al crear paquetes de instalación MSI. No necesitarás crear un instalador si ya puedes compilar el proyecto: el proceso de compilación copia todos los archivos necesarios en un único directorio. Si desea crear un instalador MSI con la cadena de herramientas WiX, puede descargarlo aquí: http://wixtoolset.org/releases/
Dependiendo de lo que haga, Visual Studio podría intentar reconstruir NativeProxy, que depende de CMake. Puede instalar CMake y asegurarse de que esté agregado a su RUTA o deshabilitar el proyecto en Visual Studio.
Tener CMake instalado como parte de Visual Studio es suficiente para ejecutar msbuild desde el Developer Command Prompt
pero no cuando se compila desde dentro de VS, a menos que lo haya agregado a su RUTA global. La instalación de CMake externamente le permite agregarlo a PATH durante la instalación.
NOTA : hay un problema en ciertas versiones de Visual Studio que puede manifestarse al cargar el proyecto. Lo notarás si Visual Studio está atascado en "Ejecución de tareas en segundo plano" y no te permite compilar el proyecto. Una solución alternativa es hacer clic derecho en el proyecto "NativeProxy" en el explorador de soluciones y elegir "Descargar proyecto". Entonces el proyecto podrá cargarse y construirse correctamente. Este problema no ocurre cuando se compila desde la línea de comando.
La carpeta de la solución Drivers
contiene los ejecutables que actúan como interfaces de usuario. El subdirectorio WindowsDecompiler
contiene el cliente GUI para la interfaz de usuario de Windows Forms. El subdirectorio AvaloniaShell
contiene el cliente GUI para la interfaz de usuario multiplataforma de Avalonia (aún en construcción). CmdLine
es un controlador de línea de comandos.
Consulte el registro de lanzamientos para conocer los últimos lanzamientos.