Entwickler-Ecke
Sonstiges (Delphi) - Kann man Delphi 4 disassemblen/dekompilieren ?
Claros - Mi 21.04.10 23:10
Titel: Kann man Delphi 4 disassemblen/dekompilieren ?
hallo ihr,
ich muss gleich vorweg sagen ich bin wirklich ein delphinoob und leider habe ich nichts verständliches über google finden können.
kann man ein programm das in delphi 4 geschrieben wurde dekompilieren bzw dissemblen oder hat das bei delphi absolut gar nichts zu suchen?
bitte nicht gleich mit der keule schwingen, aber in dem bereich kenne ich mich wirklich null aus.
sollte, sowas möglich sein ist es mit sicherheit so aufwendig wie bei c++? oder ist der delphi 4 code nur mit base64 verschlüsselt? was kostet sowas? :)
danke schon mal für eure hilfe
elundril - Do 22.04.10 00:26
Delphi ist gar nicht verschlüsselt, Delphi ist kompiliert. Das heißt der Quelltext wurde zu maschienenlesbaren Code umgewandelt. Es gibt zwar Programme die das können, aber die können das nur Teilweise und nicht sehr gut. Wie aufwendig das in C++ ist weiß ich nicht, ich habe bis jetzt nur Javacodes dekompiliert, da gehts relativ einfach, da können sogar die Variablennamen wiederhergestellt werden.
Eines der (auch hier im Forum oft verwendeter) Programme ist
DeDe [
http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/DeDe.shtml]. Damit bekommst du allerdings die Methoden als Assamblercode, was etwas schwer werden könnte manchmal das programm dann zu lesen, vor allem wenn man keinen Assambler kann.
BTW, wie hast du gesucht? Mein erster Treffer bei Google hat mit ne Liste von 4-5 Programmen geliefert.
lg elundril
Narses - Do 22.04.10 12:49
Moin!
Ich zitiere mal
Luckie: Das entspricht der Aufgabe, aus einem Kilo Halb und Halb wieder das Schwein und die Kuh zu machen. :nixweiss:
Aber - und das ist heute neu - zumindest für Schweine habe ich eine Lösung... :rofl:
Kha - Do 22.04.10 13:34
Anders ausgedrückt: Wenn jemand
wirklich an deinen einzigartigen Algorithmus gelangen oder deinen Kopierschutz cracken will (das dürften so ziemlich die einzigen Programme sein, die überhaupt schützenswert sind :nixweiss: ), dann liegt der Unterschied zwischen C und Javascript vielleicht noch in der benötigten Zeit, aber sicher nicht der Machbarkeit.
@
Narses: Die
Drachenrolle [
http://i.imgur.com/T65Hv.jpg] finde ich da allerdings etwas ästhetischer ;) . Und ich identifiziere meine Programme lieber mit Drachen als mit Schweinen :mrgreen: .
Jakob_Ullmann - Do 22.04.10 16:03
Kha hat folgendes geschrieben : |
Anders ausgedrückt: Wenn jemand wirklich an deinen einzigartigen Algorithmus gelangen oder deinen Kopierschutz cracken will (das dürften so ziemlich die einzigen Programme sein, die überhaupt schützenswert sind :nixweiss: ), dann liegt der Unterschied zwischen C und Javascript vielleicht noch in der benötigten Zeit, aber sicher nicht der Machbarkeit. |
Seit wann wird eigentlich JavaScript compiliert?
Narses: Das Schweinebild ist klasse! :rofl:
elundril: Es ist aber auch irgendwo ein Unterschied, ob man Bytecode oder richtigen Maschinencode disassemblieren will.
Kha - Do 22.04.10 16:11
Jakob_Ullmann hat folgendes geschrieben : |
Seit wann wird eigentlich JavaScript compiliert? |
Eben... :zwinker:
elundril - Do 22.04.10 16:45
Jakob_Ullmann hat folgendes geschrieben : |
elundril: Es ist aber auch irgendwo ein Unterschied, ob man Bytecode oder richtigen Maschinencode disassemblieren will. |
richtig, deswegen auch die Anmerkung das man mit DeDe den Code nicht komplett wiederherstellen kann. Das mit Java war nur so eine Anmerkung nebenbei, die eigentlich nichts mit dem Thema zu tun hat^^
lg elundril
Delete - Do 22.04.10 19:23
Narses hat folgendes geschrieben : |
Ich zitiere mal Luckie: Das entspricht der Aufgabe, aus einem Kilo Halb und Halb wieder das Schwein und die Kuh zu machen. :nixweiss: |
Und da es immer aus dem Zusammenhang gerissen wird, hier mal eine Erklärung. Moderne Compiler erzeugen hoch optimierten Code. Würde man den optimierten Code wieder zurückübersetzen, würde man seinen eignen Code nicht wiedererkennen. Bei der Optimierung schmeißt der Compiler ziemlich viel weg. Und das kann man nicht wieder herstellen. Zum anderen ist der erzeugte Maschinen Code Hochsprachen unabhängig. Das heißt, man kann nicht sagen, dieses Programm wurde mit C geschrieben oder dieses mit Delphi. davon mal abgesehen, dass es auch nur unzählige Compiler mit Dutzenden Konfigurationsmöglichkeiten gibt, die wiederum leicht abweichenden Maschinencode erzeugen können. Und genauso verhält es sich mit dem gehackten halb und halb. Das ist nämlich auch zum Verzehr hoch optimiert. Knochen und Innereien und alles andere, was da nicht rein gehört, wurden vom Metzger (Compiler) weg optimiert.
Das aller höchste an Gefühlen ist Assembler Code, der aber meist nicht direkt compilierbar ist und die Ressourcen. Den Code einer Hochsprache wirst du nicht rausbekommen.
uall@ogc - Do 22.04.10 20:00
Man kann meistens schon feststellen ob der Code in C bzw Delphi geschrieben wurde, das ist sogar relativ einfach mit dem Programm PEid möglich.
Und mit der neusten IDA Version kann man glaub ich den Code auch wieder compilieren, d.h. den Assembler Code abändern.
Und rein zur Frage: man kann es disassemblen aber nicht decompilieren, genaueres siehe wikipedia
Delete - Do 22.04.10 20:09
uall@ogc hat folgendes geschrieben : |
Man kann meistens schon feststellen ob der Code in C bzw Delphi geschrieben wurde, das ist sogar relativ einfach mit dem Programm PEid möglich. |
Aber das Programm orientiert sich nicht an dem erzeugten Maschinencode, sondern an von Compiler eincompilierten Markierungen oder wie man das nennen will.
Zitat: |
Und mit der neusten IDA Version kann man glaub ich den Code auch wieder compilieren, d.h. den Assembler Code abändern. |
Das ist aber nicht ganz billig. ;)
BenBE - Do 29.04.10 10:51
Der Vollständigkeit halber ergänze ich an dieser Stelle einfach mal
REC [
http://www.backerstreet.com/rec/rec.htm] Auch den Links dort folgen.
Man kann also durchaus aus Assembler wieder Hochsprache generieren, aber das ist extrem komplex und lohnt sich daher nur in Ausnahmefällen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!