37414
Goto Top

Wie kann ich eine Delphi-EXE-Datei öffnen?

Hallo,

wir nutzen ein Programm, welches in Delphi programmiert ist.
Das Programm ist bereits 17 Jahre alt und wurde damals von einem Mitarbeiter programmiert.
Dieser ist längst in Rente und nun möchten wir ein paar Kleinigkeiten im Programmcode ändern.

Das Programm "Delphi" haben wir jedoch leider nicht...

Gibt es ggf. Alternativen, womit ich die EXE-Datei dieses Programms öffnen kann, um Änderungen vornehmen zu können?
Im hiesigen Fall geht es nur um die Umbenennung eines Auswahlpunktes (anderer Name für eine Auswahl).

Danke und Gruss,
imebro

Content-Key: 254437

Url: https://administrator.de/contentid/254437

Printed on: April 19, 2024 at 12:04 o'clock

Member: HellstormDe
HellstormDe Nov 11, 2014 at 08:13:50 (UTC)
Goto Top
Hi,

das würde sich nur mit einem Disassembler auslesen lassen, aber dann habt ihr auch nur den Maschinencode in menschenlesbarer Ausführung. Mir ist zumindest nicht bekannt, dass es für Object Pascal Anwendungen irgendwelche Übersetzer gibt.

Eigentlich könnt ihr also nur dann etwas ändern, wenn ihr den eigentlichen Quellcode des Programmes habt - oder hat den euer MA mit in die Rente genommen?

Gruß,
David
Member: chiefteddy
chiefteddy Nov 11, 2014 updated at 08:39:02 (UTC)
Goto Top
Hallo,

ein EXE-Programm ist immer ein kompiliertes, dh. in ausführbaren Maschinen-Code übersetztes, Programm. Um ein Programm zu ändern (und zu verstehen), braucht Ihr den (gut dokumentierten und kommentierten) Quell-Code des Programms. Nach den Änderungen muß das Programm (der Quell-Code) wieder neu zu einer EXE (ausführbares Maschinen-Programm) kompiliert (übersetzt) werden.

Also: ohne Quell-Code und Delphi-Compiler werdet Ihr wenig Erfolg haben.

Fragt doch mal Euren Rentner, ob er nicht noch den Quell-Code (im Notfall auch nur auf Papier) hat.

Und wenn Ihr den Quell-Code beschafft habt, reicht sicher auch eine "30 Tage Test-Lizenz" der Delphi-Entwicklungsumgebung für die Lösung des Problems.

http://www.heise.de/download/delphi.html


Jürgen
Member: AnkhMorpork
AnkhMorpork Nov 11, 2014 at 09:08:14 (UTC)
Goto Top
Den Delphi-Compiler braucht ihr nicht. Der Freepascal-Compiler kann das auch. Allerdings mit 17 Jahre altem Code ...
Nur der Quelltext muss her, da gibt es leider keine Alternativen. Und ein Disassembling wird echt mühsam!

ankh
Mitglied: 37414
37414 Nov 11, 2014 at 09:48:49 (UTC)
Goto Top
OK... danke Euch für Eure Hilfe!

Den Quell-Code haben wir nicht mehr und zu dem Rentner auch keinerlei Kontakt mehr.
Von daher hat sich das wohl erledigt. Aber es soll im kommenden Jahr eh ein neues Programm erstellt werden.
War jetzt halt nur eine Frage, ob man am alten noch für die Zeit etwas ändern kann.

Danke und Gruss,
imebro
Member: WinCobold
WinCobold Nov 11, 2014 at 12:18:14 (UTC)
Goto Top
Hallo imebro,

vielleicht kannst du die EXE einfach editieren. Das geht natürlich generell nur, wenn der zu ändernde Text im Klartext in der EXE enthalten ist (oder wenn du weißt, wie er verschlüsselt ist) und der neue Text nicht länger ist als der alte. Dann kannst du versuchen, den Text einfach mit dem neuen (ggf. plus Leerstellen) zu überschreiben und die Datei wieder zu speichern (vorherige Sicherung nicht vergessen!). Du brauchst dazu entweder einen Hex-Editor oder zumindest einen, der die vorhandenen Zeichen absolut unverändert lässt, auch die nicht darstellbaren. Ich nehme an, Notepad++ müsste das können, gibt aber bestimmt unzählige andere geeignete Editoren.

Grüße vom
WinCobold
Mitglied: 37414
37414 Nov 11, 2014 at 13:17:08 (UTC)
Goto Top
Hallo,

zunächst habe ich mit "Notepad++" die EXE-Datei editiert und das Wort geändert...
Es ist aber dadurch länger geworden und nach dem Speichern sah ich schon, dass etwas nicht stimmte, weil das EXE-Icon nicht mehr erschien.

Dann habe ich im Internet etwas recherchiert und dabei den "Resource Hacker" gefunden.
Damit kann man EXE-Dateien editieren und auch wieder so abspeichern, dass sie wieder funktionieren (Funktion: "Compile Script")

Im Programm habe ich dann den Auswahlpunkt über die Suche gefunden und umbenannt in den etwas längeren Ausdruck.
Nach Klick auf "Compile Script" konnte ich die EXE-Datei wieder speichern.

Nachdem ich das Programm dann startete, funktionierte alles... und der Auswahlpunkt war auch verändert... sieht also so aus, als ob das funktioniert hat.

Dennoch meine Frage:
Muss ich ansonsten noch etwas bedenken?
Kann es ggf. doch noch versteckte Fehler durch die Umbenennung und Neu-Speicherung geben?

Danke und Gruss,
imebro
Member: WinCobold
Solution WinCobold Nov 11, 2014 updated at 13:39:25 (UTC)
Goto Top
Hallo imebro,

das einfache Editieren kann natürlich nicht funktionieren, wenn der Text länger wird, weil dann ja die internen Adressierungen nicht mehr stimmen.

Den Resource Hacker kenne ich nicht (sonst hätte ich den ja vermutlich auch erwähnt), daher kann ich auch nicht sagen, was da evtl. schiefgehen kann. Wenn alles zu funktionieren scheint, würde ich es einfach mal drauf ankommen lassen. Für den Notfall solltest du die alte Programmversion aufheben, damit du ggf. schnell wieder zurück kannst. Und je nachdem, was dieses Programm tut, solltest du sehr genau darauf achten, dass die gespeicherten Daten regelmäßig gesichert werden, damit du ggf. so wenig Datenverlust wie möglich hast, wenn doch etwas kaputt geht und du eine Sicherung zurückspielen musst.

Ansonsten viel Erfolg mit der geänderten EXE!

Grüße vom
WinCobold
Member: chiefteddy
chiefteddy Nov 11, 2014 at 13:53:31 (UTC)
Goto Top
Hallo @37414,

Du hättest in Deiner Fragestellung durchaus darauf hinweisen können, dass Du nur einige Text-Meldungen anpassen wolltest. Du sprachst von "Programm-Code" und der läßt sich so einfach nicht ändern.

Dann hätte man Dir sicher schneller helfen können.

Aber nun hast Du ja eine Lösung gefunden.

Jürgen
Mitglied: 37414
37414 Nov 11, 2014 at 14:04:01 (UTC)
Goto Top
Ja, wenn ich Dein Hintergrundwissen gehabt hätte, dann hätte ich das sicher geschrieben face-smile

Mir war nicht klar, dass Änderungen im Programm-Code und Änderungen von Text-Meldungen in einem Programm einen Unterschied machen.
Deshalb meine Laienhafte Beschreibung... sorry face-smile

Aber jetzt ist ja eine Lösung gefunden und sie funktioniert ja offenbar auch...

LG
imebro
Member: HellstormDe
HellstormDe Nov 11, 2014 at 14:20:01 (UTC)
Goto Top
Für solche Zwecke ist immer eine vollständige Dokumentation nützlich, auch wenn man sowieso nie Zeit dafür hat. face-wink - Dort hätte man nämlich gleich den Quellcode hinterlegen können.
Allerdings sind Eigenkreationen von Mitarbeitern auch immer etwas riskant, vorallem wenn sie in Rente gehen oder anderweitig das Unternehmen verlassen. Es ist immer gut, wenn mehr als nur eine einzige Person in einen Prozess involviert sind.
Mitglied: 37414
37414 Nov 11, 2014 at 14:31:55 (UTC)
Goto Top
...sehe ich jetzt auch so face-smile

Danke jedenfalls für Eure Hilfe.

LG
imebro