Reko (sueco: "decente, prestativo") é um descompilador para binários de código de máquina. Este projeto está disponível gratuitamente sob a Licença Pública Geral GNU.
O projeto consiste em front-ends, mecanismo de descompilador principal e back-ends para ajudá-lo a atingir seus objetivos. Uma linha de comando, uma GUI do Windows e um front-end ASP.NET existem no momento em que este artigo foi escrito. O mecanismo do descompilador recebe entradas dos front-ends na forma de arquivos executáveis individuais ou arquivos de projeto do descompilador. Os arquivos de projeto Reko contêm informações adicionais sobre um arquivo binário, úteis para o processo de descompilação ou para formatação da saída. O mecanismo de descompilador então analisa o binário de entrada.
Visualização do mapa de bytes de um executável binário ARM carregado | Visualização descompilada de um executável binário ARM carregado |
Reko tem a ambição de suportar a descompilação de várias arquiteturas de processador e formatos de arquivos executáveis com intervenção mínima do usuário. Para obter uma lista completa, consulte a página de binários suportados.
Observe que muitas licenças de software proíbem a descompilação ou outra engenharia reversa de seus binários de código de máquina. Use este descompilador somente se você tiver direitos legais para descompilar o binário (por exemplo, se o binário for seu).
Lançamentos oficiais são publicados a cada poucos meses no Github e SourceForge. Os usuários que não podem ou não querem construir o Reko por conta própria podem baixar a saída do construtor de integração Cirrus CI ou do construtor de integração Github Actions. Naturalmente você pode construir o projeto a partir das fontes: veja "Hacking" abaixo.
O seguinte software de pré-requisito deve ser instalado primeiro em sua máquina:
.NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
Baixe um instalador apropriado e execute-o na máquina de destino.
Após a instalação, você pode prosseguir baixando os binários diretamente do servidor de construção de integração ou construindo o Reko a partir dos fontes (veja Hacking
abaixo).
Para se familiarizar com os diversos recursos do Reko, você pode ler o guia do usuário. Se você estiver interessado no funcionamento interno do projeto, consulte o wiki.
Você pode relatar quaisquer problemas que encontrar ou fazer qualquer pergunta relacionada ao Reko no rastreador de problemas. Você também pode experimentar a sala de bate-papo Reko Gitter.im. O Reko é construído pelos esforços dos voluntários em seu tempo livre, portanto ajuste suas expectativas de tempo de resposta de acordo.
Para construir o reko, comece clonando https://github.com/uxmal/reko. Você pode usar um IDE ou a linha de comando para construir o arquivo de solução Reko-decompiler.sln
. Reko requer o SDK do .NET 6.0 para compilar. Se você for um usuário IDE, use uma versão recente do Visual Studio 2022. Se desejar construir usando a linha de comando, use o comando
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
Substitua {config}
por Debug
ou Release
e {platform}
por x64
ou x86
.
Observação : informe-nos se ainda não conseguir compilar, para que possamos ajudá-lo a corrigir o problema.
Se você estiver interessado em contribuir com código, consulte o roteiro para ver as áreas a serem exploradas. O Wiki traz mais informações sobre o funcionamento interno do projeto Reko. Consulte o guia de estilo.
Você receberá avisos ou erros ao carregar a solução no Visual Studio se não tiver instalado o conjunto de ferramentas WiX em sua máquina de desenvolvimento. Você pode ignorar os avisos com segurança; o conjunto de ferramentas WiX é usado apenas ao criar pacotes de instalação MSI. Você não precisará construir um instalador se já for capaz de compilar o projeto: o processo de construção copia todos os arquivos necessários em um único diretório. Se você deseja construir um instalador MSI com o conjunto de ferramentas WiX, você pode baixá-lo aqui: http://wixtoolset.org/releases/
Dependendo do que você faz, o Visual Studio pode tentar reconstruir o NativeProxy, que depende do CMake. Você pode instalar o CMake e certificar-se de que ele foi adicionado ao seu PATH ou desabilitar o projeto no Visual Studio.
Ter o CMake instalado como parte do Visual Studio é suficiente para executar o msbuild no Developer Command Prompt
, mas não ao compilar de dentro do VS, a menos que você tenha adicionado isso ao seu PATH global. Instalar o CMake externamente permite adicioná-lo ao PATH durante a instalação.
NOTA : há um problema em certas versões do Visual Studio que pode se manifestar ao carregar o projeto. Você notará isso se o Visual Studio estiver travado em "Executando tarefas em segundo plano" e não permitir que você crie o projeto. Uma solução alternativa é clicar com o botão direito do mouse no projeto "NativeProxy" no gerenciador de soluções e escolher "Descarregar Projeto". O projeto poderá então ser carregado e compilado corretamente. Esse problema não ocorre ao compilar a partir da linha de comando.
A pasta de solução Drivers
contém os executáveis que atuam como interfaces de usuário. O subdiretório WindowsDecompiler
contém o cliente GUI para a interface de usuário do Windows Forms. O subdiretório AvaloniaShell
contém o cliente GUI para a interface de usuário multiplataforma do Avalonia (ainda em construção). CmdLine
é um driver de linha de comando.
Consulte o log de lançamento para os lançamentos mais recentes.