Autor Beitrag
Claros
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 21.04.10 23:10 
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
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 21.04.10 23:41 
Ja, das geht.

user profile iconClaros hat folgendes geschrieben Zum zitierten Posting springen:
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? :)

WTF? :nixweiss:

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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. 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 22.04.10 12:49 
Moin!

Ich zitiere mal user profile iconLuckie: 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:

Hackschwein
Einloggen, um Attachments anzusehen!
_________________
There are 10 types of people - those who understand binary and those who don´t.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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.

@user profile iconNarses: Die Drachenrolle finde ich da allerdings etwas ästhetischer ;) . Und ich identifiziere meine Programme lieber mit Drachen als mit Schweinen :mrgreen: .

_________________
>λ=
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 22.04.10 16:03 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
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?

user profile iconNarses: Das Schweinebild ist klasse! :rofl:

user profile iconelundril: Es ist aber auch irgendwo ein Unterschied, ob man Bytecode oder richtigen Maschinencode disassemblieren will.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 22.04.10 16:11 
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Seit wann wird eigentlich JavaScript compiliert?
Eben... :zwinker:

_________________
>λ=
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Do 22.04.10 16:45 
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconelundril: 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 22.04.10 19:23 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Ich zitiere mal user profile iconLuckie: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 22.04.10 20:09 
user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:
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. ;)
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 23.04.10 07:51 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:
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.


Doch teilweise schon und zwar an dem Code den der Compiler am EntryPoint erstellt.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 29.04.10 10:51 
Der Vollständigkeit halber ergänze ich an dieser Stelle einfach mal REC 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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.