2010-04-17 19 views

risposta

22

Non è possibile ottenere la sorgente C++ da un exe e si può ottenere solo una versione del sorgente C# tramite riflessione. Né sarà di grande utilità per te, a giudicare dal modo in cui hai posto la domanda.

+0

Ho provato Reflector per un semplice progetto C# VS 2012 Express exe Ho perso i file sorgente e il materiale Reflector esportato aveva più di 100 errori quando ho aperto il progetto creato per il codice. Ho provato altri, ma ho avuto fortuna solo con http://ilspy.net/ - Non solo non c'erano errori che hanno smesso di costruire, sembrava anche preservare i nomi delle variabili e sono stato in grado di apportare le mie modifiche abbastanza per creare una build finale e prendi un nuovo .exe NON ero in grado di far visualizzare correttamente il modulo in VS 2012 Express, quindi le modifiche apportate erano tutte in codice. La mia raccomandazione è di apportare solo piccole modifiche. – scottcarmich

+0

È molto maleducato – Seraf

17

Se il programma è stato scritto in C# è possibile ottenere il codice sorgente in quasi nella forma originale utilizzando .NET Reflector. Non sarai in grado di vedere commenti e nomi di variabili locali, ma è molto leggibile.

Se è stato scritto in C++ non è così facile ... anche se è possibile decompilare il codice in C++ valido è improbabile che assomigli alla fonte originale a causa di funzioni e ottimizzazioni integrate che sono difficili da invertire.

Si prega di notare che con il reverse engineering e la modifica del codice sorgente si potrebbero rompere i termini di utilizzo dei programmi a meno che non li si sia scritti da soli o in possesso dell'autorizzazione dell'autore.

+0

grazie per la risposta. è davvero utile. Ho provato il riflettore .Net ma non funziona per il mio exe. peid dice il suo microsoft visual C++ 6.0.penso che non ci sia modo di ottenere la fonte. grazie comunque –

+0

Come ho detto, non importa. –

6

Se è un codice nativo, è possibile disassemblarlo. Ma non vedrai il codice originale come scritto dal programmatore. Vedrai il codice prodotto dal compilatore (assemblatore). Questo codice è probabilmente ottimizzato e sebbene sia semanticamente equivalente, può essere molto più difficile da leggere rispetto al normale ASM.

Se è un bytecode (MSIL o javabytecode), esistono decompilatori che possono produrre codice sorgente piuttosto buono. Per .net, questo sarebbe riflettore.

0

Non c'è niente che tu possa fare per questo ho paura perché non sarai in grado di vederlo in un formato leggibile, è praticamente intenzionale e mostrerà il codice macchina interpretato, non ci sarebbe alcuna formattazione o commenti come normalmente si ottengono nei file .cs/.c.

È praticamente uno scenario da non perdere.

Qualcuno ha già chiesto su un altro website

+0

Tipico, giù vota senza spiegazione. Inoltre questa risposta non è troppo lontana dalla risposta accettata. Almeno menziona come la mia risposta può essere migliorata per il mio bene e anche per l'autore della domanda. –

+0

Se non avessi cancellato la tua risposta, avremmo potuto. Ad ogni modo, la tua risposta è errata; vedi le altre risposte alla domanda. Il reverse engineering di un'immagine eseguibile è possibile in molte circostanze e con gli strumenti giusti. –

+0

Non è completamente errato, la mia risposta ha un punto o due in relazione alla risposta accettata. Il motivo per cui ho cancellato la mia risposta è che è stato ridimensionato di 3 in pochi secondi e nessuno ha avuto la decenza di inserire un commento. Grazie per la risposta, apprezzo lo sforzo. Vuole che non disturbi il fatto di contribuire per la paura che la gente metta senza pietà a votare una risposta senza spiegazione, concessa non so tutto ma è un colpo alla fiducia, a prescindere da chi sia la risposta. –

3

vorrei (e hanno) utilizzato IDA Pro per decompilare eseguibili. Crea codice semi-completo, puoi decompilare in assembly o C.

Se hai una copia dei simboli di debug in giro, carica quelli in IDA prima di decompilare e sarà in grado di nominare molte delle funzioni, parametri, ecc

0

per qualsiasi file * .exe scritto in qualsiasi lingua .È possibile visualizzare il codice sorgente con Hiew (altrimenti vista hacker). È possibile scaricarlo allo www.hiew.ru. Sarà la versione demo ma è comunque possibile visualizzare il codice.

Dopo questo attenersi alla seguente procedura:

  1. premere Alt + F2 per navigare al file.

  2. Premere invio per vedere il relativo assembly/codice C++.

Problemi correlati