
Reko est un décompilateur binaire.
Reko (suédois : « decent, obliging ») est un décompilateur pour binaires de code machine. Ce projet est librement disponible sous la licence publique générale GNU.
Le projet se compose d'interfaces frontales, d'un moteur de décompilation central et de back-ends pour l'aider à atteindre ses objectifs. Une interface en ligne de commande, une interface graphique Windows et une interface ASP.NET existent au moment de la rédaction. Le moteur de décompilation reçoit les entrées des interfaces frontales sous forme de fichiers exécutables individuels ou de fichiers de projet Reko. Les fichiers de projet Reko contiennent des informations supplémentaires sur un fichier binaire, utiles pour le processus de décompilation ou pour la mise en forme de la sortie. Le moteur de décompilation procède ensuite à l'analyse du binaire d'entrée.
![]() Vue en carte 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 processeurs et formats de fichiers exécutables avec une intervention minimale de l'utilisateur. Pour une liste complète, consultez la page binaires pris en charge.
Veuillez noter que de nombreuses licences logicielles interdisent la décompilation ou toute autre rétro-ingénierie de leurs binaires de code machine. Utilisez ce décompilateur uniquement si vous avez 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 construire Reko eux-mêmes peuvent télécharger le résultat du constructeur d'intégration Cirrus CI ou du constructeur d'intégration Github Actions. Naturellement, vous pouvez construire le projet à partir des sources : voir « Hacking » ci-dessous.
Les logiciels prérequis suivants doivent d'abord être installés sur votre machine :
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 construction 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 rencontré ou poser toute question relative à Reko sur le traqueur de problèmes. Vous pouvez également essayer le salon de discussion Reko Gitter.im. Reko est construit par les efforts de bénévoles sur 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 construire le fichier solution Reko-decompiler.slnx. Reko nécessite le SDK .NET 8.0 pour compiler. Si vous êtes un utilisateur d'IDE, utilisez une version récente de Visual Studio 2022. Si vous souhaitez construire en utilisant 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 informer si vous n'arrivez toujours pas à compiler, afin que nous puissions vous aider à résoudre le problème.
Si vous êtes intéressé par la contribution de code, consultez la feuille de route pour 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é l'ensemble d'outils WiX sur votre machine de développement. Vous pouvez ignorer ces 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 construire 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 construire un programme d'installation MSI avec la chaîne d'outils WiX, vous pouvez le télécharger ici : http://wixtoolset.org/releases/
Selon 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 depuis l'Invite de commandes développeur mais pas lors de la construction depuis l'intérieur de VS, à moins que vous ne l'ayez ajouté à votre PATH global. L'installation de CMake en externe vous permet de l'ajouter au PATH lors de l'installation.
REMARQUE : il y a un problème dans certaines versions de Visual Studio qui peut se manifester lors du chargement du projet. Vous le remarquerez si Visual Studio reste bloqué sur « Running Background Tasks » et ne vous permet pas de construire le projet. Une solution de contournement consiste à cliquer avec le bouton droit sur le projet « NativeProxy » dans l'explorateur de solutions et à choisir « Unload Project ». Le projet pourra alors se charger et se construire correctement. Ce problème ne se produit pas lors de la construction en 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 (encore en construction). CmdLine est un pilote en ligne de commande.
Consultez le journal des versions pour les dernières versions.