2010-04-17 5 views

Antwort

22

Sie können die C++ - Quelle nicht von einer EXE abrufen, und Sie können nur eine bestimmte Version der C# -Quelle über Reflektion abrufen. Nichts wird dir viel nützen, nach der Art zu urteilen, wie du die Frage gestellt hast.

+0

Ich probierte Reflector für eine einfache C# VS 2012 Express-Projekt-Exe Ich verlor die Quelldateien zu, und die Sachen Reflector exportiert hatte 100 + Fehler, als ich das Projekt öffnete es für den Code erstellt. Ich habe versucht andere, aber ich hatte nur Glück mit http://ilspy.net/ - Nicht nur gab es keine Fehler, die aufhörten zu bauen, es schien auch Variablennamen zu bewahren und ich war in der Lage, meine Änderungen zu machen, um einen endgültigen Build und Erhalte eine neue .exe. Ich war NICHT in der Lage, das Formular richtig in VS 2012 Express angezeigt zu bekommen, so dass die Änderungen, die ich vorgenommen habe, alle im Code waren. Meine Empfehlung ist, nur kleine Verbesserungen vorzunehmen. – scottcarmich

+0

Das ist sehr unhöflich – Seraf

17

Wenn das Programm in C# geschrieben wurde, können Sie den Quellcode in fast seine ursprüngliche Form mit .NET Reflector erhalten. Sie werden Kommentare und lokale Variablennamen nicht sehen können, aber es ist sehr lesbar.

Wenn es C++ geschrieben ist, ist es nicht so einfach ... selbst wenn Sie den Code in gültiges C++ dekompilieren könnten, ist es unwahrscheinlich, dass es der ursprünglichen Quelle wegen inlined Funktionen und Optimierungen, die schwer umzukehren sind.

Bitte beachten Sie, dass Sie durch Reverse Engineering und Änderung des Quellcodes die Nutzungsbedingungen der Programme brechen können, es sei denn, Sie haben sie selbst geschrieben oder haben die Genehmigung des Autors.

+0

Vielen Dank für Ihre Antwort. es ist wirklich hilfreich. Ich habe versucht. NET Reflektor, aber es funktioniert nicht für meine exe. peid sagt sein Microsoft Visual C++ 6.0.Ich denke, keine Möglichkeit, die Quelle zu bekommen. danke trotzdem –

+0

Wie gesagt, vergiss es. –

6

Wenn es sich um systemeigenen Code handelt, können Sie es zerlegen. Aber Sie werden nicht den Originalcode sehen, wie er vom Programmierer geschrieben wurde. Sie werden sehen, dass der Code vom Compiler (Assembler) erzeugt wird. Dieser Code ist möglicherweise optimiert und obwohl er semantisch äquivalent ist, kann er viel schwieriger zu lesen sein als normaler ASM.

Wenn es Bytecode (MSIL oder Javabytecode) ist, gibt es Decompiler, die ziemlich guten Quellcode produzieren können. Für .net wäre das ein Reflektor.

0

Es gibt nichts, was Sie tun können, ich fürchte, da Sie nicht in der Lage sein werden, es in einem lesbaren Format anzuzeigen, es ist ziemlich absichtlich und es wird den interpretierten Maschinencode zeigen, würde es keine Formatierung oder Kommentare, wie Sie normalerweise in .cs/.c-Dateien erhalten.

Es ist so ziemlich ein Hit-and-Miss-Szenario.

Jemand hat bereits über es auf einem anderen gefragt website

+0

Typisch, unten abstimmen es ohne Erklärung. Außerdem ist diese Antwort nicht zu weit von der akzeptierten Antwort entfernt. Erwähnen Sie zumindest, wie meine Antwort sowohl für mich selbst als auch für den Autor der Frage verbessert werden kann. –

+0

Wenn Sie Ihre Antwort nicht gelöscht haben, könnten wir haben. Wie auch immer, deine Antwort ist falsch. Siehe die anderen Antworten auf die Frage. Reverse-Engineering eines ausführbaren Bildes ist in vielen Fällen und mit den richtigen Tools möglich. –

+0

Es ist nicht völlig falsch, meine Antwort hat ein oder zwei Punkte in Bezug auf die angenommene Antwort. Der Grund, warum ich meine Antwort gelöscht habe, ist, dass sie innerhalb von Sekunden um 3 gesenkt wurde und niemand den Anstand hatte, einen Kommentar abzugeben. Vielen Dank für die Antwort, ich schätze die Mühe. Es will, dass ich mich nicht für die Angst der Leute betone, die gnadenlos eine Antwort ohne Erklärung abstimmen, vorausgesetzt, ich weiß nicht alles, aber es ist ein Schlag ins Vertrauen, egal wer es ist, der eine Antwort gibt. –

3

Ich würde (und haben) verwendet IDA Pro ausführbare Dateien zu dekompilieren. Es erzeugt halbfertigen Code, den Sie zu Assembly oder C dekompilieren können.

Wenn Sie eine Kopie der Debug-Symbole haben, laden Sie diese in IDA vor dem Dekompilieren und es wird in der Lage sein, viele der Funktionen, Parameter, usw.

0

für irgendeine * .exe-Datei in jeder Sprache geschrieben .Sie den Quellcode mit Hiew anzeigen können (ansonsten Hackers Ansicht). Sie können es unter www.hiew.ru herunterladen. Es wird die Demo-Version sein, aber immer noch den Code sehen können.

Danach gehen Sie folgendermaßen vor:

  1. Alt + F2 drücken, um die Datei zu finden.

  2. Drücken Sie die Eingabetaste, um den assembly/C++ - Code anzuzeigen.

Verwandte Themen