Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Quellcode aus einer exe auslesen (https://www.delphipraxis.net/103070-quellcode-aus-einer-exe-auslesen.html)

Eppos 9. Nov 2007 14:18


Quellcode aus einer exe auslesen
 
Hallo zusammen,

besteht die Möglichkeit, aus einer compilierten delphi "EXE" den Quellcode auszulesen?!

Vielen Dank!

Phoenix 9. Nov 2007 14:19

Re: Quellcode aus einer exe auslesen
 
Nein. Nach dem compilieren sind nur noch Assembler-Anweisungen übrig. Namen von Variablen etc. werden alle wegoptimiert.

Eppos 9. Nov 2007 14:22

Re: Quellcode aus einer exe auslesen
 
das würde mir eigentlich schon reichen, gibt es dafür ein Programm?

edit:
und gibt es möglichkeiten, zugriffe auf eine datenbank abzufangen (dbtyp: firebird 1.5)

sirius 9. Nov 2007 14:23

Re: Quellcode aus einer exe auslesen
 
Disassembler heist das praktischerweise.

Aber, wenn du das schon fragst....... :gruebel:

Edit: Schon, das geht ja alles über TCP/IP. Da kannst du mitlauschen. Aber ob du das Protokoll verstehst.

Progman 9. Nov 2007 14:24

Re: Quellcode aus einer exe auslesen
 
Es gibt Disassembler, nur durch solche Code "durchzusteigen" erfordert schon viel Erfahrung in Assembler.

Nuclear-Ping 9. Nov 2007 14:24

Re: Quellcode aus einer exe auslesen
 
Vielleicht Bei Google suchenWindows Disassembler?

[edit]
Sry, roter Kasten ...
[/edit]

Phoenix 9. Nov 2007 14:26

Re: Quellcode aus einer exe auslesen
 
Zitat:

Zitat von Eppos
edit:
und gibt es möglichkeiten, zugriffe auf eine datenbank abzufangen (dbtyp: firebird 1.5)

Neue Frage -> neuer Thread! Idealerweise im Datenbank-Forum.

Flips 9. Nov 2007 15:45

Re: Quellcode aus einer exe auslesen
 
Also so ganz stimmt das nicht.
Es gibt ein Programm, welches im besten Fall:
  • Die dfm darstellen kann
  • Das Formular verändern (!) kann (nur die Speicherung der EXE ist noch nicht implementiert)
  • Die verwendeten Units auflistet
  • Die verwendeten Klassen auflistet
  • Die Events aller Komponente und die Komponenten selbst auflistet (mit Originalname)
  • Das komplette Programm inklusive PAS-Dateien (!) wiederherstellt (Allerdings mit viel Assemblercode und einigen Syntaxfehlern. Ein einfaches Testprogramm konnte zwar wieder in kompilierbarer Code zerlegt werden, doch die EXE war nicht lauffähig (Direkte Terminierung nach dem Start))
Allerdings weiß ich nicht ob das Programm irgendeinen illegalen Charakter hat, deshalb geb ich den Namen mal lieber nicht an^^

lbccaleb 9. Nov 2007 15:50

Re: Quellcode aus einer exe auslesen
 
such mal nach dem programm dede von DaFixer im internet per google oder so, dieses sollte dir event auch nen bissel weiter helfen...

Nuclear-Ping 9. Nov 2007 15:58

Re: Quellcode aus einer exe auslesen
 
Zitat:

Zitat von Flips
Also so ganz stimmt das nicht.
Es gibt ein Programm, welches im besten Fall:
  • Die dfm darstellen kann
  • Das Formular verändern (!) kann (nur die Speicherung der EXE ist noch nicht implementiert)
  • Die verwendeten Units auflistet
  • Die verwendeten Klassen auflistet
  • Die Events aller Komponente und die Komponenten selbst auflistet (mit Originalname)
  • Das komplette Programm inklusive PAS-Dateien (!) wiederherstellt (Allerdings mit viel Assemblercode und einigen Syntaxfehlern. Ein einfaches Testprogramm konnte zwar wieder in kompilierbarer Code zerlegt werden, doch die EXE war nicht lauffähig (Direkte Terminierung nach dem Start))
Allerdings weiß ich nicht ob das Programm irgendeinen illegalen Charakter hat, deshalb geb ich den Namen mal lieber nicht an^^

Nunja, wie du schon sagtest: im besten Fall. Komponenten selber mit Name würde ich behaupten geht nur, wenn du irgendwelche Debug-Infos in die Exe reinkompilierst oder vielleicht so Standardsachen wie "Edit1", "Button1", ... :P

Und das was dabei rauskommt ist dann auch nur was für Leute, die zum Frühstück im Assembler-Buch "für Systementwickler" oder so lesen - denn wie du schon sagtest: haufen Syntaxfehler und .exe ist in den meisten Fällen auch nicht lauffähig.

Entsprechende Ergebnisse findet man, wenn man z.B. nach Delphi Decompiler googelt. Illegal sind solche Programme nur, wenn man sie zu illegalen Zwecken einsätzt. ... Wobei, war da nicht kürzlich irgend'ne Gesetzesänderung oder 'n Vorschlag in die Richtung? :gruebel:

Luckie 9. Nov 2007 16:09

Re: Quellcode aus einer exe auslesen
 
Warum willst du denn das machen?

Flips 9. Nov 2007 16:22

Re: Quellcode aus einer exe auslesen
 
Also ich sag mal so...
Das ist ein Teil des Original-Codes:
Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TfrmMain = class(TForm)
    pnlEins: TPanel;
    pnlZwei: TPanel;
    pnlDrei: TPanel;
    lblWin: TLabel;
    lblLost: TLabel;
    lblTie: TLabel;
    btnStart: TButton;
    btnStop: TButton;
    procedure btnStartClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Das ist der Reproduzierte:
Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls
type
  TfrmMain=class(TForm)
    pnlEins: TPanel;
    pnlZwei: TPanel;
    pnlDrei: TPanel;
    lblWin: TLabel;
    lblLost: TLabel;
    lblTie: TLabel;
    btnStart: TButton;
    btnStop: TButton;
    OFFS_0240: N.A.;
    procedure btnStartClick(Sender : TObject);
    procedure FormCreate(Sender : TObject);
    procedure btnStopClick(Sender : TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end ;

var
  frmMain: TfrmMain;
Also ich find das Programm sehr geil, es baut auch die DFM exakt nach.
Aber du hast schon recht, das meiste bringt dir nichts :-), ich finde es aber trotzdem sehr interessant.

@Luckie: Das ist eine berechtigte Frage.

Luckie 9. Nov 2007 16:26

Re: Quellcode aus einer exe auslesen
 
Das Formular liegt als Ressource in der Exe, da braucht man nichts "nachzubauen".

Flips 9. Nov 2007 16:28

Re: Quellcode aus einer exe auslesen
 
Ok das wusste ich nicht, sry :oops:

Assertor 9. Nov 2007 16:31

Re: Quellcode aus einer exe auslesen
 
Naja, das

Zitat:

Zitat von Flips
Also ich find das Programm sehr geil, es baut auch die DFM exakt nach.

Ist das so schwer, die seh ich doch schon mit dem ResHacker so.

Und mit verwendeten Units würst Du bei meinen Programmen nichts, da ist keine PackageInfo mehr als Resource an der Exe.

[offtopic]Zusätzlich kann man auch DCVAL weglassen, muß dann aber die RTL und einmal eine DB Unit patchen. Da gibt es doch ein schönes Tutorial von Asserbad dazu.

Wer übrigens denkt, die DCVAL enthält seinen Compiler: Nur sehr grob richtig. Mein DCVAL Code ist exakt der gleiche wie bei Delphi 3 Enterprise oder so. Da ist nichts mit weiteren Infos.[/offtopic]

Zitat:

Zitat von Flips
[*]Das Formular verändern (!) kann (nur die Speicherung der EXE ist noch nicht implementiert)

Wie gesagt, den guten alten ResHacker mal auf eine Delphi Exe angewandt. Da geht das Speichern geänderter DFM Resourcen. Und wenn ResHacker meckert, die Datei ist ge-upx-ed oder ähnliches, einfach entpacken oder dumpen...

Gruß Assertor

[Mist, Luckie: roter Kasten ;)]


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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