
Reko è un decompilatore binario.
Reko (svedese: "decente, servizievole") è un decompilatore per binari di codice macchina. Questo progetto è liberamente disponibile sotto la GNU General Public License.
Il progetto consiste di front-end, un motore di decompilazione centrale e back-end per aiutare a raggiungere i suoi obiettivi. Al momento della scrittura esistono un front-end a riga di comando, una GUI per Windows e un front-end ASP.NET. Il motore di decompilazione riceve input dai front-end sotto forma di singoli file eseguibili o di file di progetto del decompilatore. I file di progetto di Reko contengono informazioni aggiuntive su un file binario, utili al processo di decompilazione o per formattare l'output. Il motore di decompilazione procede quindi ad analizzare il binario in input.
![]() Vista della mappa dei byte di un eseguibile ARM binario caricato |
![]() Vista decompilata di un eseguibile ARM binario caricato |
Reko ha l'ambizione di supportare la decompilazione di varie architetture di processori e formati di file eseguibili con un intervento minimo da parte dell'utente. Per un elenco completo, consultare la pagina dei binari supportati.
Si noti che molte licenze software proibiscono la decompilazione o altre forme di reverse engineering dei loro binari di codice macchina. Utilizzare questo decompilatore solo se si hanno i diritti legali per decompilare il binario (ad esempio se il binario è di propria proprietà).
Le versioni ufficiali vengono pubblicate ogni pochi mesi su Github e SourceForge. Gli utenti che non possono o non vogliono compilare Reko da soli possono scaricare l'output del builder di integrazione Cirrus CI o del builder di integrazione Github Actions. Naturalmente è possibile compilare il progetto dai sorgenti: vedere "Hacking" qui sotto.
Il seguente software prerequisito deve essere installato prima sulla macchina:
Scaricare un installer appropriato ed eseguirlo sulla macchina di destinazione.
Dopo l'installazione, si può procedere scaricando i binari direttamente dal server di build
di integrazione, oppure compilando Reko dai sorgenti (vedere Hacking più avanti).
Per familiarizzare con le varie funzionalità di Reko, è possibile leggere la guida utente. Se siete interessati al funzionamento interno del progetto, consultate il wiki.
È possibile segnalare qualsiasi problema riscontrato o porre qualsiasi domanda relativa a Reko sul tracker dei problemi. Si può anche provare la chat room di Reko su Gitter.im. Reko è costruito grazie agli sforzi di volontari nel loro tempo libero, quindi adattate di conseguenza le vostre aspettative sui tempi di risposta.
Per compilare reko, iniziate clonando https://github.com/uxmal/reko. Potete
utilizzare un IDE o la riga di comando per compilare il file della soluzione
Reko-decompiler.slnx. Reko richiede il .NET 8.0 SDK
per compilare. Se utilizzate un IDE, usate una versione recente di Visual Studio 2022.
Se desiderate compilare tramite riga di comando, usate il comando
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
Sostituite {config} con Debug o Release, e {platform} con x64 o x86.
Nota: fateci sapere se non riuscite ancora a compilare, così possiamo aiutarvi a risolvere il problema.
Se siete interessati a contribuire con codice, consultate la road map per aree da esplorare. Il Wiki ha maggiori informazioni sul funzionamento interno del progetto Reko. Si prega di consultare la guida di stile.
Riceverete avvisi o errori quando caricate la soluzione in Visual Studio se non avete installato il WiX toolset sulla vostra macchina di sviluppo. Potete ignorare tranquillamente gli avvisi; il WiX toolset viene utilizzato solo per creare pacchetti di installazione MSI. Non sarà necessario creare un installer se siete già in grado di compilare il progetto: il processo di build copia tutti i file necessari in una singola directory. Se invece desiderate creare un installer MSI con il WiX toolchain, potete scaricarlo qui: http://wixtoolset.org/releases/
A seconda di ciò che si fa, Visual Studio potrebbe tentare di ricompilare NativeProxy che dipende da CMake. È possibile installare CMake e assicurarsi che sia aggiunto al PATH oppure disabilitare il progetto in Visual Studio.
Avere CMake installato come parte di Visual Studio è sufficiente per eseguire msbuild
dal Developer Command Prompt ma non per la compilazione dall'interno di VS,
a meno che non lo si sia aggiunto al PATH globale. Installare CMake esternamente consente
di aggiungerlo al PATH durante l'installazione.
NOTA: c'è un problema in alcune versioni di Visual Studio che può manifestarsi durante il caricamento del progetto. Lo noterete se Visual Studio rimane bloccato "Running Background Tasks" e non vi permette di compilare il progetto. Una soluzione alternativa è fare clic con il tasto destro sul progetto "NativeProxy" nel solution explorer e scegliere "Unload Project". Il progetto sarà quindi in grado di caricarsi e compilarsi correttamente. Questo problema non si verifica quando si compila dalla riga di comando.
La cartella della soluzione Drivers contiene gli eseguibili che fungono
da interfacce utente. La sottodirectory WindowsDecompiler contiene
il client GUI per l'interfaccia utente Windows Forms. La sottodirectory
AvaloniaShell contiene il client GUI per l'interfaccia utente cross-platform
Avalonia (ancora in costruzione). CmdLine è un driver
a riga di comando.
Vedere il registro delle versioni per le ultime versioni.