2015-07-09 11 views
5

Ich habe eine Delphi-Anwendung, die ich nicht neu kompilieren kann.Wie ändere ich das hartcodierte Datenbankpasswort eines Delphi-Programms, das ich nicht neu kompilieren kann?

Beim Verschieben der Datenbank auf eine neue SQL Server-Version möchte ich das Datenbankkennwort ändern, damit es nicht mehr leer ist. Das Problem besteht darin, dass die Anwendung die Datenbankanmeldeinformationen in die EXE-Datei eingebettet hat.

Gibt es irgendwelche Weise, dass ich das Passwort ändern kann?

Servername und Datenbankname sind konfigurierbar.

+0

Hat Ihr neuere Version von SQL Server erlauben keine leeren Passwörter? Ansonsten verstehe ich das Problem nicht. –

+0

ich möchte nicht mein sa Kennwort leer machen, da der neue Server ein großes ist ... – e4rthdog

+2

@RobKennedy: Könnte erwähnenswert für Leser, die nicht wissen, traditionell, das sa Konto auf Sql Server hatte ungehinderten Zugang zu den gesamter Server, weshalb eine leere Pwd ist nicht so eine gute Idee, und warum man sicherlich nicht die Sa Pwd entfernen möchten, nur um eine App Zugriff darauf zu ermöglichen. In den letzten Versionen ist es glücklicherweise nicht so einfach, sie leer zu lassen. – MartynA

Antwort

5

Unten ist ein Screenshot eines Teils einer D7 .Exe von mir, der den relevanten Teil seines Ado ConnectionString zeigt.

Ich benutzte einen antiken Dateibetrachter (von den Beispiel-Apps, die eine alte TurboPower-Bibliothek begleiten), um den Screenshot zu machen. Ich lud gerade die Datei hinein, gab "persist" als Suchzeichenfolge ein und übersprang einige TPersistent-Instanzen, um sie zu finden.

Natürlich können Sie all alten Hex-Datei-Editor ähnlich zu tun und es ändern verwenden könnten, sofern die Exe nicht komprimiert oder geschützt gegen durch Prüfsummen Manipulation etc.

Sie werden wahrscheinlich müssen experimentieren Sie ein wenig, & vergleichen Sie mit einer anderen App, die ein nicht leeres Passwort hat, so dass Sie einige neue Anmeldeinformationen, die in den verfügbaren Speicherplatz in der .exe Disk Image passen.

enter image description here

+0

Ich werde mit dieser Antwort gehen, da ich auch einige Combo-Box-Zeichenfolgen auch ändern muss .... – e4rthdog

+1

Ich schlage vor, Sie versuchen das ResourceHacker-Dienstprogramm in der anderen Antwort zuerst. Es ist viel einfacher zu benutzen als es selbst zu hacken. – MartynA

+0

Ich habe es mit deinem Weg gemacht! Ich habe die CONNECITONS-String-PLUS-Combobox-Werte geändert, die ich brauchte. – e4rthdog

16

Wenn die Verbindungszeichenfolge in der TADOConnection Komponente im Design-Modus gespeichert wurde, ist die beste Wahl Ressourceneditor wie Resource Hacker zu verwenden.

Die Formulare oder Datenmodule DFM finden Sie im Abschnitt RCData. Ändern Sie einfach die Verbindungszeichenfolge und verwenden Sie "Skript kompilieren". Das wird Ihre Änderungen in der EXE-Datei speichern, ohne die EXE beschädigen zu müssen.

Ich nehme an, Ihre EXE ist nicht gepackt (PE Packer) oder digital signiert.

enter image description here

+1

Danke. Nur für die Op's Info habe ich das benutzt, um das Passwort meiner Beispiel-App zu ändern und es hat gut funktioniert. – MartynA

+2

Für jeden mit dem gleichen Problem. Dies ist die richtige Antwort. Mische dich nicht mit einem Hexeditor herum. – Johan

+0

Dies ist die richtige Antwort, wenn das einzige, was Sie brauchen, ist nur die Verbindung zu ändern – e4rthdog

Verwandte Themen