Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Konstanten verändern (https://www.delphipraxis.net/22828-konstanten-veraendern.html)

Meflin 24. Mai 2004 17:19


Konstanten verändern
 
Hi,
ich weis natürlich dass es nicht sinn einer konstante ist dass sie verändert wird :stupid: ist es trotzdem möglich? (ich meine dauerhaft, nciht nur zur laufzeit)

mirage228 24. Mai 2004 17:21

Re: Konstanten verändern
 
Ich glaube es ist der Compilerschalter:

Delphi-Quellcode:
{$J+}
mfG
mirage228

Pseudemys Nelsoni 24. Mai 2004 17:22

Re: Konstanten verändern
 
was meinst du mit dauerhaft?

sonst würd ich sagen - nein kannst du nicht, deswegen heissen sie ja konstant(en)

Meflin 24. Mai 2004 17:23

Re: Konstanten verändern
 
Zitat:

Zitat von mirage228
Ich glaube es ist der Compilerschalter:

Delphi-Quellcode:
{$J+}
mfG
mirage228

a ja und dann? sry ich check garnix :stupid:
mit dauerhaft mein ich dass die konbstanten auch beim nächsten programmstart noch verändert sind

mirage228 24. Mai 2004 17:25

Re: Konstanten verändern
 
Achso,

Sorry, hatte mich verlesen.

Ich glaube, dass die Konstanten danach geändert werden, ist nicht möglich.

mfG
mirage228

IngoD7 24. Mai 2004 17:28

Re: Konstanten verändern
 
Zitat:

Zitat von Meflin
mit dauerhaft mein ich dass die konbstanten auch beim nächsten programmstart noch verändert sind

Zur Laufzeit??? Woher kennst du denn die Konstanten einer Exe-Datei? Und wie willst du die Exe-Datei dann umschreiben?

Ich glaube, das darfst du vergessen ....

Pseudemys Nelsoni 24. Mai 2004 17:28

Re: Konstanten verändern
 
Zitat:

mit dauerhaft mein ich dass die konbstanten auch beim nächsten programmstart noch verändert sind
das geht 100% nicht

es sei denn es ist möglich die exe umzuschreiben, was ich kaum glaube

Meflin 24. Mai 2004 17:30

Re: Konstanten verändern
 
also ich mein das mehr so wie wenn ich nen hexeditor öfnen würde und dann runmpfuschen würde, sollte man das missverstanden haben. und wenn konstanten in plainteyxt gespeichert sind würde das ja per hexeditor gehen. ich bräuchte dann nur die offset adresse der konstante um das mit einem tool zu erledigen

IngoD7 24. Mai 2004 17:35

Re: Konstanten verändern
 
Zitat:

Zitat von Meflin
also ich mein das mehr so wie wenn ich nen hexeditor öfnen würde und dann runmpfuschen würde, sollte man das missverstanden haben. und wenn konstanten in plainteyxt gespeichert sind würde das ja per hexeditor gehen. ich bräuchte dann nur die offset adresse der konstante um das mit einem tool zu erledigen

Ich glaube nicht, dass Variablennamen noch im Exe-File auftauchen.
Wenn du natürlich - wie und woher auch immer - die genaue Adresse eines bestimmten Wertes hast, den du verändern möchtest, dann nur zu. Das Stichwort "Hex-Editor" hast du selbst gegeben.

Allerdings weiss ich dann nicht, was deine Frage war. :stupid:

Meflin 24. Mai 2004 17:36

Re: Konstanten verändern
 
die frage ist dass ich das nicht mit nem hexeditor machen möchte sondern mit einer selbergeschriebenen exe, wobei die offsetadressen mir bekannt sind, wie ich das also programmiertechnisch mache!

phlux 24. Mai 2004 17:38

Re: Konstanten verändern
 
Sprich du willst die Stelle im Speicher überschreiben? :?: :roll:

IngoD7 24. Mai 2004 17:46

Re: Konstanten verändern
 
Zitat:

Zitat von phlux
Sprich du willst die Stelle im Speicher überschreiben? :?: :roll:

Dann hat er's aber nicht wie gewünscht auch beim nächsten Programmstart.
[Spekulation ON]
Er will per selbstgeschriebenen Programm eine andere Exe-Datei manipulieren ---> Bytes austauschen sozusagen.
[Spekulation OFF] ...oder auch nicht .... :roll:

Chewie 24. Mai 2004 17:58

Re: Konstanten verändern
 
Angenommen, du weißt den Offset: Dann ist es kein Problem, das zu tun, wenn es sich nicht um die eigene EXE handelt.
Zu beachten ist dabei nur, dass der neue Wert genau so lang ist wie der alte Wert, sprich dass er die gleiche Byte-Zahl hat. Bei Zahlen mag das einfach sein, bei Strings ist das schon eher ein Problem.
Ist dein String kürzer, könntest du versuchen, den übrigbleibenden Raum mit 0en aufzufüllen. Ist er größer, kannst du ihn nicht ungekürzt reinschreiben, da ansonsten die nachfolgenden Adressen nicht mehr stimmen würden.

Wilst du deine eigene EXE verändern, musst dir ein paar Tricks einfallen lassen.
Eine Möglichkeit wäre, die laufende Datei zu kopieren, die kopierte zu verändern und beim Schließen des Programms eine BAT anzulegen, die dann die original-EXE löscht und die kopierte Datei in dem Originalnamen umbenennt.

Wie auch immer, der Sinn bleibt fraglich. Wenn du das bei einer anderen EXE machen willst, sieht das nach einer Art Patchengine aus. Da gibt es schon fertige, bessere, bestimmt sind auch welche OS und für Delphi.
Und wenn du so die Einstellungen deines Programms verändern willst, würd ich mir mal Gedanken um mein Programmdesign machen. Veränderbare Einstellungen sollten in der Registry, in Datenbanken, INI-Dateien etc. gespeichert werden, aber nicht in der EXE.

PhaTTy 24. Mai 2004 18:27

Re: Konstanten verändern
 
^^^ Sorry zu spät gesehen das es schon jemand geschrieben hat...trotzdem ^^^

Also ich weis das String-Konstanten bei Delphi Anwendungen im Klartext über einen Disassembler oder HEXeditor zu lesen sind (also besser keine Passwörter als Strings in die EXE). Wenn du deine fertige EXE nun dazu bewegen kannst sich selbst du editieren (wie mit einem HEXeditor) dann geht es. In C++ habe ich das schon mal gemacht und es hat funktioniert.

Meflin 25. Mai 2004 15:19

Re: Konstanten verändern
 
sinn und zweck ist es tatsächlich die einstellungen in der exe zu speichern, da ich sowenig "datenmüll" wie möglich hinterlassen will, wenn die exe gelöscht wird. und das wär dann wohl mit der beste und most foolproof weg. oder hat jemand ne bessere idee?

Chewie 25. Mai 2004 15:33

Re: Konstanten verändern
 
Ach, ich denke, die Probleme, die der Benutzer kriegen wird bei Veränderung in der EXE (Virenscanner u.a. Sicherheitstools) sind weitaus größer als die, dass du irgendwo eine ini-Datei oder sowas erzeugst.

Meflin 25. Mai 2004 15:35

Re: Konstanten verändern
 
unter dem gesichtspunkt hab ichs noch garnicht betrachtet. aber das problem ist nicht die erzeugung der ini oder wasauchimmer, sondern eher dass das teil auch wieder gelöscht wird (bei registry kann man das ganz vergessen, da bleibt alles bis zur nächsten apokalypse drin ohne setup oder pflege seitens des users)

Chewie 25. Mai 2004 15:38

Re: Konstanten verändern
 
Die Benutzer, die sich darüber aufregen, dass z.B. im Programmverzeichnis eine INI-Datei steht, wissen auch, wie man diese löschen kann.

Meflin 25. Mai 2004 15:40

Re: Konstanten verändern
 
gehe davon aus,dass mein tool kein eigenes programmverzeichnis hat. da könnte das aufspühren der zugehörigen ini schon schwer werden...

Pseudemys Nelsoni 26. Mai 2004 08:33

Re: Konstanten verändern
 
mach doch einfach nen button in dein prog "registry säubern" den der user drücken muss bevor er es löscht, sonst hat er halt pech. 8)


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