C++ Quelltext anschauen
lima-city → Forum → Programmiersprachen → C/C++ und D
anweisung
assembler
code
compiler
entfernt kommentare
entsprechend schema
ergebnis
ersteinmal
erwarten
festgelegten regeln
folgenden schritten
frage
mehrfach vorkommen
meinung
posten
problem
programm
quellcode
rechtlicher sicht
sichtbar macht
-
Hi ich wollte fragen ob es ein Programm gibt das ein mit C++ gecodetes Programm \"zerlegt\" und dann den Quelltext sichtbar macht. Wenn es sowas gibt bitte hier posten.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Sowas gibt es schon, nur wahrscheinlich nicht ganz in der Form, in der du dir das vorstellst ;) Erwarte nicht, dass du am Schluss Kopien der .cpp-Files des Entwicklers hast^^ Einen dir passenden Decompiler musst du schon selber suchen; für C++ gibt es soviel ich weiss nicht viel brauchbares Material, aber vielleicht findest du ja etwas passendes.
http://de.wikipedia.org/wiki/Decompiler
http://de.wikipedia.org/wiki/Disassembler
Allerdings sehe ich im Decompilieren sowieso keinen Sinn und gehe davon aus, dass du ein Produkt eines Anderen zu decompilieren. Das ist aus rechtlicher Sicht nicht erlaubt. Du bist du berechtigt, deine eigenen Programme und Opensource-Software zu decompilieren.
MfG
sebigisler -
Hi ich wollte fragen ob es ein Programm gibt das ein mit C++ gecodetes Programm \"zerlegt\" und dann den Quelltext sichtbar macht. Wenn es sowas gibt bitte hier posten.
Wenn du nicht auf andere Weise an den Code kommen kannst (z.B. da es GPL oder von dir selbst ist), ist das wohl kaum erlaubt.
Des Weiteren gibt\'s zu diesem Thema bereits etliche Beiträge hier, unter anderem mit weiteren Antworten, die ich nicht noch mal tippen möchte ;) -
gibt es, aber ist dann nicht so schlüssig der code...
also es kommt nicht das raus, was der Entwickler vorher als Code eingegeben hat.... -
thx ich habe es ausprobiert kommt alles entweder als hex oder garnicht.
-
Das Problem ist das folgende:
C++ erzeugt in folgenden Schritten dein Programm
1. Präprozessor: Es bearbeitet grob den Quellcode durch #... Anweisungen
2. Compiler: Dieser Entfernt Kommentare Funktionsnamen etc. und erzeugt binären Code bzw. Assembler Code, welchen du durchs Decompilen erhalten kannst.
3. Linker: Fügt die Compiler Ergebnisse zum Programm zusammen
Das Problem des Decompilens liegt bei 2.
Da der Compiler alles lesbare entfernt und nur binären Maschinencode erzeugt, wirst du keine Funktionsnamen etc. aus dem Nix erhalten können.
das Ergebnis des Decompilers ist Maschinencode, welcher meiner Meinung nach nur von Pro`s gelesen werden kann. -
Das Problem ist das folgende:
C++ erzeugt in folgenden Schritten dein Programm
1. Präprozessor: Es bearbeitet grob den Quellcode durch #... Anweisungen
2. Compiler: Dieser Entfernt Kommentare Funktionsnamen etc. und erzeugt binären Code bzw. Assembler Code, welchen du durchs Decompilen erhalten kannst.
3. Linker: Fügt die Compiler Ergebnisse zum Programm zusammen
Das Problem des Decompilens liegt bei 2.
Da der Compiler alles lesbare entfernt und nur binären Maschinencode erzeugt, wirst du keine Funktionsnamen etc. aus dem Nix erhalten können.
das Ergebnis des Decompilers ist Maschinencode, welcher meiner Meinung nach nur von Pro`s gelesen werden kann.
Es wäre aber theoretisch ein Decompiler denkbar, der zufällige Variablen und Funktionsnamen erzeugt (oder entsprechend Schema var1, var2, ... und function1, function2, function3,...) Und anschließend den erzeugten Code nach festgelegten Regeln formatiert (schon jetzt übernehmen viele IDEs die Formatierung des Codes automatisch). Also, das ist IMHO kein Argument gegen einen Decompiler, der sollte eigentlich auch lesbaren Code erzeugen könenn (wobei ich nicht weiß, ob es solche Decompiler schon gibt). -
Bei C++ stellt sich auch das problem der Objektorientierten programmierung, die bei Assembler nicht vorhanden ist. Das heißt der Compiler übersetzt die Objekte ersteinmal ein ein komplexes System aus Einsprungspunkten und ähnlichem. dabei können auch noch verschiedene Funktionen usw mehrfach vorkommen. Das ganze ist so nicht wieder rekonstruierbar.
Wo kein OOP möglich ist, kann auch keines Rekonstruiert werden. (In diesem Fall.) -
mit so einem programm koenntest du reich werden :) allerdings wirst du maximal auf assembler-ebene kommen...
bei java/c# sieht die sache anders aus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage