Wie kann ich feststellen, welche Bibliotheken in einem Delphi-Programm verwendet werden, für das ich keine Quelle habe?

8

Ich habe eine Windows-EXE-Datei, aber der Quellcode dafür fehlt. Der Entwickler war nicht verantwortlich und verließ unser Unternehmen. Ich denke, es war ein Delphi / Pascal-Programm. Der Entwickler hat viele Bibliotheken benutzt, aber ich bin mir nicht sicher welche. Gibt es ein Tool, das mir sagen kann, welche Bibliotheken benutzt wurden, um diese exe zu erstellen?

    
sayf 18.02.2011, 14:38
quelle

4 Antworten

5

Eine Anwendung, die die verwendeten Einheiten in einer Delphi-Binärdatei auflistet (ähnlich wie bei RRUZ Demonstration ), ist XN Ressourceneditor . Neueste Version ist hier AFAIK. Der folgende Beispiel-Screenshot (zum Beispiel Glück) zeigt auf eine bestimmte 3rd-Party-Bibliothek:

Als "Wurmregungen" in den Kommentaren zu der Frage vorgeschlagen, zeigt die Anwendung auch 'dfm' Inhalte, daher kann man die Klassennamen der verwendeten Komponenten sehen. Aber dafür würde ich den DFM-Editor vorschlagen, da diese Anwendung die verwendeten Komponenten in einer Baumstruktur anzeigt, ähnlich wie die 'Strukturbereich' in der Delphi-IDE:

XN oder ein anderer Ressourceneditor kann verwendet werden, um eine DFM-Ressource in eine Datei zu exportieren, die mit dem DFM-Editor untersucht werden soll.

    
Sertac Akyuz 19.02.2011, 03:18
quelle
5

Wie einige Benutzer wie empfohlen, können Sie die in der PACKAGEINFO -Ressource gespeicherten Informationen verwenden, die in jeder exe, dll oder bpl enthalten sind, die von Delphi generiert wird.

Sie können die Funktion GetPackageInfo verwenden, um die Daten in der Informationstabelle des Pakets abzurufen.

Überprüfen Sie diesen Beispielcode, um zu sehen, wie diese Funktion verwendet wird.

%Vor%     
RRUZ 19.02.2011 00:32
quelle
4

Sie haben erwähnt, dass Sie "denken", dass es in Delphi geschrieben wurde. Wenn Sie sich nicht sicher sind, können Sie dieses kleine Dienstprogramm verwenden. Es ist nur ein Kommandozeilen-Tool - die Verwendung ist "IsDelphi.exe".

Wenn es tatsächlich in Delphi geschrieben ist, kann der interaktive Delphi-Reconstructor erstaunliche Dinge tun. Hier sind eine Schritt-für-Schritt-Anleitung zur Verwendung:

  1. Gehen Sie zu diesem Link

  2. Laden Sie drei Dateien herunter:

    a) Die exe

    b) Die Unterstützungsdll

    c) Das 'Dictionary' für die Version von Delphi, die Ihr ehemaliger Mitarbeiter verwendet hat

  3. Extrahiere alle drei

    (Verwenden Sie 7-zip , falls Sie noch keinen RAR-Dateiextraktor haben)

  4. Öffnen Sie IDK.exe
  5. Wählen Sie Datei- & gt; Laden- & gt; Autodetect-Version
  6. Wählen Sie Ihre EXE im Dialogfeld
  7. Stöbern Sie im Code Viewer und im Klassen-Viewer.

Schließlich finden Sie weitere allgemeine Richtlinien sowie Links zu weiteren Tools auf dieser Seite .

Viel Glück!

    
JosephStyons 19.02.2011 03:24
quelle
1

Nein, es ist praktisch unmöglich, eine Delphi-Anwendung rückzuentwickeln. Wenn Sie das tun, haben Sie nur eine Menge Assembly. Es ist praktisch unmöglich zu rekonstruieren, welche VCL-Funktionen aufgerufen werden, geschweige welche Bibliotheken verwendet werden.

Wenn dieses Programm keine sehr geniale und nicht nachvollziehbare Logik enthält, ist es am besten, bei Null anzufangen und alles zu schreiben.

    
GolezTrol 18.02.2011 14:48
quelle

Tags und Links