Domanda

Ho un programma in cui ho perso il codice sorgente C ++. Ci sono dei buoni decompilatori C ++ là fuori?

Ho già incontrato Boomerang .

È stato utile?

Soluzione

Puoi utilizzare IDA Pro di Raggi esadecimali . Di solito non otterrai un buon C ++ da un binario se non hai compilato le informazioni di debug. Preparati a spendere un lotto di lavoro manuale invertendo il codice.

Se non hai rimosso i file binari, c'è qualche speranza in quanto IDA Pro è in grado di produrre codice C-allo stesso modo su cui lavorare. Di solito è molto agitato, almeno quando l'ho usato un paio di anni fa.

Altri suggerimenti

le informazioni vengono eliminate nel processo di compilazione. Anche se un decompilatore potrebbe produrre il codice logico equivalente con le classi e tutto il resto (probabilmente non può farlo), la parte autocompattante viene inserita in un codice di rilascio ottimizzato. Nessun nome di variabile, nessun nome di routine, nessun nome di classe - solo indirizzi.

Sì, ma nessuno di loro riuscirà a produrre abbastanza codice leggibile per meritare lo sforzo. Trascorrerai più tempo a cercare di leggere l'origine decompilata con blocchi assemblatore all'interno, piuttosto che riscrivere la tua vecchia app da zero.

Non ho visto alcun decompilatore che genera codice C ++. Ne ho visti alcuni sperimentali che fanno un ragionevole tentativo di generare codice C, ma tendono a dipendere dall'abbinamento dei modelli di generazione del codice di un particolare compilatore (che potrebbe essere cambiato, è passato un po 'di tempo dall'ultima volta che ho esaminato questo ). Ovviamente qualsiasi informazione simbolica sparirà. Google per "decompilatore".

A seconda di quanto grande e ben scritto fosse il codice originale, potrebbe valere la pena ricominciare nella tua lingua preferita (che potrebbe essere ancora C ++) e imparare da eventuali errori commessi nell'ultima versione. Qualcuno una volta non ha detto di scriverne uno da buttare via?

NB. Chiaramente se questo è un prodotto enorme, allora potrebbe non valerne la pena.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top