Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String in Exe ändern (https://www.delphipraxis.net/199783-string-exe-aendern.html)

jacky213 19. Feb 2019 21:53

String in Exe ändern
 
Moin,

ich habe in meiner Anwendung einen String gespeichert. Dieser String hat einen festen wert. Allerdings muss genau dieser String auch mal erneuert werden, sodass er aber auch nach einen Neustart den neuen wert besitzt.

Mir ist klar, dass dies zur Laufzeit nicht möglich ist, also wollte ich euch fragen wie ich die Änderung des Strings mit einem zweiten Programm bewerkstelligen kann, während die Hauptanwendung geschlossen ist.

Die zweite kleine Anwendung soll also meine Haupt Exe datei durchsuchen und den String finden, mit dem neuen wert beschreiben und alles speichern, sodass mein Hauptprogramm beim nächsten start den neuen String nutzt.

Luckie 19. Feb 2019 22:27

AW: String in Exe ändern
 
Warum speicherst du ihn nicht in einer Datei oder der Registry?

PeterPanino 19. Feb 2019 22:30

AW: String in Exe ändern
 
Zitat:

Zitat von jacky213 (Beitrag 1426026)
... wie ich die Änderung des Strings mit einem zweiten Programm bewerkstelligen kann, während die Hauptanwendung geschlossen ist.

Da wird dein AntiViren-Programm möglicherweise etwas dagegen haben ...

Es gibt zwar eine Möglichkeit, die aber etwas aufwendig ist: Erstelle eine eigene Signatur, welche den gewünschten String enthält und signiere das Programm damit. Zum Ändern des Strings musst du dann nur das Programm neu signieren.

Alallart 19. Feb 2019 23:10

AW: String in Exe ändern
 
Zitat:

Zitat von jacky213 (Beitrag 1426026)
...

Also den String in der Registry oder Ini speichern ist der einfachste Weg die Aufgabe zu lösen.

Allerdings gibt es auch die Möglichkeit einen String als Ressource zu speichern. Diese Ressource kann man dann ändern. Ich weiß, dass das geht, hab es mal gemacht, weiß aber aktuell nicht wie das geht. Da findet sich aber vermutlich irgendwo ein Tipp zu dem Thema.

Aber wie gesagt - Registry ist einfacher.

hoika 20. Feb 2019 00:14

AW: String in Exe ändern
 
Hallo,
Zitat:

Allerdings muss genau dieser String auch mal erneuert werden, sodass er aber auch nach einen Neustart den neuen Wert besitzt.
Wie man das hinbekommt, weiss ich, aber deine Intentition ist nicht schlüssig.

Erzähl mal mehr über Dein Problem.

PeterPanino 20. Feb 2019 01:59

AW: String in Exe ändern
 
Zitat:

Zitat von hoika (Beitrag 1426035)
Erzähl mal mehr über Dein Problem.

Ich bin sicher, dass er schon selber auf die Idee gekommen ist, den String in der Reg. oder sonstwo zu speichern. Er muss also einen Grund haben, die Information direkt mit dem Programm zu verbinden. Aus dieser Sicht ist eine Signatur ideal.

hoika 20. Feb 2019 08:39

AW: String in Exe ändern
 
Hallo,
oder man packt den String als Ressource in die Exe (siehe Alallart).
Windows bietet dann Funktionen an, den Wert zu ändern.
siehe dazu
https://docs.microsoft.com/de-de/win...ting_Resources

Dann darf die Exe allerdings nicht signiert werden/sein,
weil das Ändern der Exe die Signatur zerschießt.

Uwe Raabe 20. Feb 2019 08:57

AW: String in Exe ändern
 
Sollte die EXE nicht sowieso schreibgeschützt sein? Da könnte sonst ja jede Malware dran basteln.

Ich kenne jetzt die Hintergründe für diese Entscheidung nicht, aber ich würde auch in jedem Fall ein externes Setting (Registry, File, Ressource) vorziehen.

PeterPanino 20. Feb 2019 11:00

AW: String in Exe ändern
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1426055)
Sollte die EXE nicht sowieso schreibgeschützt sein? Da könnte sonst ja jede Malware dran basteln.

Völlig richtig. Also kommt nur das Prinzip der Metadaten in Frage, wenn die Anforderung lautet, die Information direkt mit der Exe zu verbinden. Und die einzig erlaubte Form von direkt verbundenen intrinsischen Exe-Metadaten ist eine Signatur.

pesi 20. Feb 2019 13:20

AW: String in Exe ändern
 
Hmmm.... ist das ein "geheimer" String? Wenn nicht, wie wäre es denn wenn man dem Programm diesen String einfach als Startparameter übergibt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz