
Reko è un decompilatore binario.
# reko - un decompilatore generico.
[](https://cirrus-ci.com/github/uxmal/reko)
[](https://github.com/uxmal/reko/actions/workflows/reko.yml)
[](https://discord.gg/9PMWVxEjqr)
[](https://gitter.im/uxmal/reko?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<img align="right" src="https://assets.kitploit.com/production/public/readmes/2370/ae0ef511a6081b11fcaf459cd5138762108755f9368b6718bc8c65a0b542fe5a.png" />
**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.
<table>
<tr>
<td>
<a href="https://github.com/uxmal/reko/blob/master/doc/img/mem-map-full.png"><img src="https://assets.kitploit.com/production/public/readmes/2370/55d61215a405e64ad6564031a0cffb23bd085ea9fb74d6085025f3d4a73998f7.png" border="0" /></a><br />
Vista della mappa dei byte di un eseguibile ARM binario caricato
</td>
<td>
<a href="https://github.com/uxmal/reko/blob/master/doc/img/structure-full.png"><img src="https://assets.kitploit.com/production/public/readmes/2370/78d405827719a0b81c07effc5c2bfdbcdfa161ac150ea3fd4d7f8b6efcda04b4.png" border="0" /></a><br />
Vista decompilata di un eseguibile ARM binario caricato
</td>
</tr>
</table>
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](https://github.com/uxmal/reko/wiki/Supported-binaries).
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à).
## Downloading Reko
Le versioni ufficiali vengono pubblicate ogni pochi mesi su [Github](https://github.com/uxmal/reko/releases)
e [SourceForge](https://sourceforge.net/projects/decompiler/files/).
Gli utenti che non possono o non vogliono compilare Reko da soli possono scaricare l'output
del [builder di integrazione Cirrus CI](https://cirrus-ci.com/github/uxmal/reko) o del [builder di integrazione Github Actions](https://github.com/uxmal/reko/actions/workflows/reko.yml).
Naturalmente è possibile compilare il progetto dai sorgenti: vedere "Hacking" qui sotto.
## Installing Reko
Il seguente software prerequisito deve essere installato prima sulla macchina:
* .NET 8.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
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).
## Documentation
Per familiarizzare con le varie funzionalità di Reko, è possibile leggere la
[guida utente](https://github.com/uxmal/reko/blob/master/doc/guide/reko.md). Se siete interessati al funzionamento interno
del progetto, consultate il wiki.
## Getting support
È possibile segnalare qualsiasi problema riscontrato o porre qualsiasi domanda relativa a Reko
sul [tracker dei problemi](https://github.com/uxmal/reko/issues).
Si può anche provare la chat room di Reko su [Gitter.im](https://gitter.im/uxmal/reko).
Reko è costruito grazie agli sforzi di volontari nel loro tempo libero, quindi adattate
di conseguenza le vostre aspettative sui tempi di risposta.
## Hacking
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](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
per compilare. Se utilizzate un IDE, usate una versione recente di Visual Studio 2022.
Se desiderate compilare tramite riga di comando, usate il comando
```cmd
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](https://github.com/uxmal/reko/wiki/Roadmap) per aree da esplorare.
Il [Wiki](https://github.com/uxmal/reko/wiki) ha maggiori informazioni
sul funzionamento interno del progetto Reko. Si prega di consultare la
[guida di stile](https://github.com/uxmal/reko/blob/master/doc/style.md).
### Warnings and errors related to WiX
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/
### Errors related to CMake in Visual Studio
A seconda di ciò che si fa, Visual Studio potrebbe tentare di ricompilare NativeProxy che
dipende da CMake. È possibile installare [CMake](https://cmake.org/download/)
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.
### How do I start Reko?
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](https://avaloniaui.net/) (ancora in costruzione). `CmdLine` è un driver
a riga di comando.
## Recent versions
Vedere il [registro delle versioni](https://github.com/uxmal/reko/releases) per le ultime versioni.