Il decompilatore C / C ++ traduce i programmi, senza bisogno di codice sorgente

Con un nuovo decompilatore per C / C ++, gli sviluppatori possono ottenere informazioni dettagliate sul funzionamento di un programma senza guardare il codice sorgente. Questo è il piano per Snowman, che lo sviluppatore principale del progetto spera di rendere simile a un LLVM per la decompilazione.

Snowman decompila dal codice macchina al C con un supporto minore per C ++ e il codice sorgente dovrebbe essere rilasciato entro diversi mesi, ha detto il capo sviluppatore Yegor Derevenets, uno studente universitario in Germania, in una risposta via e-mail alle domande.

La tecnologia è "altamente modulare", ha affermato Derevenets. “Si basa su una libreria di decompilazione che può essere facilmente integrata in altri sistemi. Ad esempio, forniamo tre applicazioni che lo utilizzano: un decompilatore da riga di comando, un decompilatore GUI e un plug-in disassemblatore IDA. Si spera che, dopo il rilascio del codice sorgente, Snowman finirà per diventare l'LLVM per la decompilazione.

"Lo scopo di un decompilatore è tradurre i programmi in una rappresentazione di basso livello, come il codice macchina o il bytecode, in programmi in un linguaggio di programmazione di alto livello, come C, C ++ o Java e C #", ha detto Derevenets. "Una tale traduzione può essere utile per le persone che cercano di capire come funziona un programma di basso livello senza avere accesso al suo codice sorgente: ingegneri della sicurezza, analisti virali, manutentori di vecchi sistemi il cui codice è stato perso."

L'attuale versione 0.0.5 di Snowman include modifica del codice C / C ++, refactoring, navigazione nel codice e miglioramenti delle prestazioni della GUI. Da giugno sono state pubblicate sei versioni minori, inclusa una versione di metà ottobre con un plug-in per il disassemblatore IDA.