![]() |
Quelltext aus compillierter exe wiederherstellen?
Hi, mich würd mal interessieren, ob ich aus ner mit Delphi compilierten exe-Datei den Quellcode irgendwie wiederherstellen kann, wenn man den source-code nit mehr hat. Die oberfläche brauch ich ja nit, kann ich ja nochmal machen, aber den quellcode will ich nicht nochmal von neu ausdenken.
|
Re: Quelltext aus compillierter exe wiederherstellen?
lol. wenn das so einfach gehen würde wärs ja cool :-D du kannst versuchen mit nem decompiler reverse engineering zu betreiben, natürlich in assembler-code. wenn du's schaffst daraus wieder deinen delphi-code zu machen bist du schon ein echter 'hacker' :wink:
|
Re: Quelltext aus compillierter exe wiederherstellen?
Aus einer Delphi-Exe (D1-D7) wirst Du maximal die Formular-Resourcen (DFM's) und den Quellcode auf Assembler-Ebene bekommen. Mit TD32-Info (Exe ca. 3-4 mal größer) könntest Du evtl. mehr herausbekommen (weiß aber nichts genaueres).
Mit D8 (und .NET IL-Code) ist es sehr einfach den Quellcode herauszubekommen (bis zu einem gewissen Grade), aber vermutlich willst Du den Quellcode eines Win32-Programms. |
Re: Quelltext aus compillierter exe wiederherstellen?
jo, is keine .net-anwendung
|
Re: Quelltext aus compillierter exe wiederherstellen?
Zitat:
|
Re: Quelltext aus compillierter exe wiederherstellen?
Vergiss es. Variblen sind nur noch Adressen im Speicher, der Code ist optimiert und in Assembler. Aber selbst, wenn du Assembler kannst, wirst du nur sehen was er macht, aber es nie wieder in eine Hochsprache bekommen. Ist ungefähr so, als wenn du Gehacktes halb und halb hast und wolltest daraus wieder das Rind und das Schwein machen. ;)
|
Re: Quelltext aus compillierter exe wiederherstellen?
@Luckie: köstlicher Vergleich!
|
Re: Quelltext aus compillierter exe wiederherstellen?
Stammt aber nicht von mir. ;)
|
Re: Quelltext aus compillierter exe wiederherstellen?
@Lucky
Zitat:
Gruß Celina |
Re: Quelltext aus compillierter exe wiederherstellen?
|
Re: Quelltext aus compillierter exe wiederherstellen?
Zitat:
![]() Bug oder Feature? Es ist ein Feature (ähnlich dem Bytecode von Java). Du kannst aber etwas mit sogenannten Obfuscator-Tools dagegen unternehmen, welcher eine möglichst hohe Verschleierung des Codes durchführt (Variablennamen werden zu aaaaaaaab oder ähnlichen. |
Re: Quelltext aus compillierter exe wiederherstellen?
Hallo!
Zitat:
Die klassischen Windows-Programme (.EXE) werden jedoch in Maschinensprache umgesetzt. Die kann nur GOTO und CALL - dadurch wird die Struktur des Originals verworfen. Luckies Hackfleich-Vergleich ist da sehr passend. An der Umkehrcompilierung haben sich schon etliche Universitäts-Projektgruppen (Ruck Zuck PUC - Projektgruppe Umkehr-Compilierung) die Zähne ausgebissen - man muß ja versuchen, aus den Maschinenbefehlen (bzw. ihren Assembler-Entsprechungen) die Original-Struktur zurückgewinnen. Im Prinzip kann man das Ganze rekonstruieren. Der Umkehrcompiler muß "nur" in der Lage sein, die Instruktionen zur Bereitstellung von Parametern bei Prozedur/Funktionsaufrufen zu erkennen und dann den Aufruf mit Parametern daraus zu erstellen. Man muß dann nur damit leben, daß man Variablennamen der Bauart I1, I2 etc. bei Integern hat und daß alles mit GOTO abläuft. Aus
Delphi-Quellcode:
oder
for lauf:=1 to 10 do
unterprogramm(lauf);
Delphi-Quellcode:
oder
lauf:=1;
while lauf <= 10 do begin unterprogramm(lauf); inc(lauf); end
Delphi-Quellcode:
würde dann ein Spitzen-Umkehrcompiler erzeugen:
lauf:=1;
repeat unterprogramm(lauf); inc(lauf); until lauf>10;
Delphi-Quellcode:
Der Rest ist dann Handarbeit.
i1:=1;
l1: p1(i1); inc(i1) if i1<=10 then goto l1; Normalerweise erhält man allerdings Assembler - im absoluten Notfall kann ein Super-Programmierer (das wird TEUER!) vielleicht einen Fehler beheben. Fazit: Ein Backup des Sources ist durch nichts zu ersetzen - außer durch mehrere Backups! Gruß Dietmar Brüggendiek |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz