Reko (suédois : « décent, obligeant ») est un décompilateur de binaires de code machine. Ce projet est disponible gratuitement sous la licence publique générale GNU.
Le projet comprend des frontaux, un moteur de décompilation principal et des backends pour l'aider à atteindre ses objectifs. Une ligne de commande, une interface graphique Windows et un frontal ASP.NET existent au moment de la rédaction. Le moteur de décompilation reçoit les entrées des frontaux sous la forme de fichiers exécutables individuels ou de fichiers de projet de décompilation. Les fichiers de projet Reko contiennent des informations supplémentaires sur un fichier binaire, utiles au processus de décompilation ou au formatage de la sortie. Le moteur de décompilation procède ensuite à l'analyse du binaire d'entrée.
Vue mappe d'octets d'un exécutable binaire ARM chargé | Vue décompilée d'un exécutable binaire ARM chargé |
Reko a l'ambition de prendre en charge la décompilation de diverses architectures de processeur et formats de fichiers exécutables avec une intervention minimale de l'utilisateur. Pour une liste complète, consultez la page des binaires pris en charge.
Veuillez noter que de nombreuses licences de logiciels interdisent la décompilation ou toute autre ingénierie inverse de leurs binaires de code machine. Utilisez ce décompilateur uniquement si vous disposez des droits légaux pour décompiler le binaire (par exemple si le binaire est le vôtre.)
Les versions officielles sont publiées tous les quelques mois sur Github et SourceForge. Les utilisateurs qui ne peuvent pas ou ne veulent pas créer Reko eux-mêmes peuvent télécharger la sortie du générateur d'intégration Cirrus CI ou du générateur d'intégration Github Actions. Naturellement, vous pouvez construire le projet à partir des sources : voir "Piratage" ci-dessous.
Les logiciels requis suivants doivent d'abord être installés sur votre ordinateur :
.NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
Téléchargez un programme d'installation approprié et exécutez-le sur la machine cible.
Après l'installation, vous pouvez procéder soit en téléchargeant les binaires directement depuis le serveur de build d'intégration, soit en construisant Reko à partir des sources (voir Hacking
ci-dessous).
Pour vous familiariser avec les différentes fonctionnalités de Reko, vous pouvez lire le guide de l'utilisateur. Si vous êtes intéressé par le fonctionnement interne du projet, consultez le wiki.
Vous pouvez signaler tout problème que vous rencontrez ou poser toute question relative à Reko sur le système de suivi des problèmes. Vous pouvez également essayer le salon de discussion Reko Gitter.im. Reko est construit grâce aux efforts de bénévoles pendant leur temps libre, alors ajustez vos attentes en matière de temps de réponse en conséquence.
Pour construire reko, commencez par cloner https://github.com/uxmal/reko. Vous pouvez utiliser un IDE ou la ligne de commande pour créer le fichier de solution Reko-decompiler.sln
. Reko nécessite le SDK .NET 6.0 pour être compilé. Si vous êtes un utilisateur IDE, utilisez une version récente de Visual Studio 2022. Si vous souhaitez créer à l'aide de la ligne de commande, utilisez la commande
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
Remplacez {config}
par Debug
ou Release
, et {platform}
par x64
ou x86
.
Remarque : veuillez nous faire savoir si vous n'arrivez toujours pas à compiler, afin que nous puissions vous aider à résoudre le problème.
Si vous souhaitez contribuer au code, consultez la feuille de route pour connaître les domaines à explorer. Le Wiki contient plus d'informations sur le fonctionnement interne du projet Reko. Veuillez consulter le guide de style.
Vous recevrez des avertissements ou des erreurs lors du chargement de la solution dans Visual Studio si vous n'avez pas installé le jeu d'outils WiX sur votre machine de développement. Vous pouvez ignorer les avertissements en toute sécurité ; l'ensemble d'outils WiX n'est utilisé que lors de la création de packages d'installation MSI. Vous n'aurez pas besoin de créer un programme d'installation si vous êtes déjà capable de compiler le projet : le processus de construction copie tous les fichiers nécessaires dans un seul répertoire. Si vous souhaitez créer un programme d'installation MSI avec la chaîne d'outils WiX, vous pouvez le télécharger ici : http://wixtoolset.org/releases/
En fonction de ce que vous faites, Visual Studio peut essayer de reconstruire NativeProxy qui dépend de CMake. Vous pouvez soit installer CMake et vous assurer qu'il est ajouté à votre PATH, soit désactiver le projet dans Visual Studio.
Avoir CMake installé dans le cadre de Visual Studio est suffisant pour exécuter msbuild à partir de l' Developer Command Prompt
mais pas lors de la construction à partir de VS, à moins que vous ne l'ayez ajouté à votre PATH global. L'installation de CMake en externe vous permet de l'ajouter à PATH lors de l'installation.
REMARQUE : il existe un problème dans certaines versions de Visual Studio qui peut se manifester lors du chargement du projet. Vous le remarquerez si Visual Studio est bloqué « Exécution de tâches en arrière-plan » et ne vous permet pas de créer le projet. Une solution de contournement consiste à cliquer avec le bouton droit sur le projet « NativeProxy » dans l’explorateur de solutions et à choisir « Décharger le projet ». Le projet pourra alors se charger et se construire correctement. Ce problème ne se produit pas lors de la construction à partir de la ligne de commande.
Le dossier de solution Drivers
contient les exécutables qui font office d'interfaces utilisateur. Le sous-répertoire WindowsDecompiler
contient le client GUI pour l'interface utilisateur Windows Forms. Le sous-répertoire AvaloniaShell
contient le client GUI pour l'interface utilisateur multiplateforme Avalonia (toujours en construction). CmdLine
est un pilote de ligne de commande.
Consultez le journal des versions pour connaître les dernières versions.