Einstellungen speichern

Hi Leutz,

ich wollt mal fragen no ihr vielleicht wisst ob ich in Borland C++ Builder 6 meine Einstellungen die ich integriert hab während das Programm läuft, ob ich die so abspeichern kann das sie beim erneuten aufrufen des Programms noch wirksam sind.
Oder das ich was in eine Liste schreibe und das es bei erneuten starten noch immer dasteht.
Denk mal das das geht wenn ich ne Textdatei anlege und die jedesmal einlese, aber will ich nich. Es soll im Programm selber gespeichert werden.

Weis da jemand was?

Schon mal danke
Mfg Flauschy

Hi Leutz,

ich wollt mal fragen no ihr vielleicht wisst ob ich in Borland
C++ Builder 6 meine Einstellungen die ich integriert hab
während das Programm läuft, ob ich die so abspeichern kann das
sie beim erneuten aufrufen des Programms noch wirksam sind.
Oder das ich was in eine Liste schreibe und das es bei
erneuten starten noch immer dasteht.
Denk mal das das geht wenn ich ne Textdatei anlege und die
jedesmal einlese, aber will ich nich. Es soll im Programm
selber gespeichert werden.

Weis da jemand was?

Hallo,

das ist ein Irrweg. Spätestens mit Einführung des Executable-Flags werden selbstmodifizierende EXE-Files scheitern, aus Sicherheitsgründen müssten sie sowieso verboten sein. Üblicherweise werden Einstellungen in einem Textfile (Ini- oder Unix-Stil) gespeichert oder in der berüchtigten Registry.

Gruss Reinhard

Schon mal danke
Mfg Flauschy

das ist ein Irrweg. Spätestens mit Einführung des
Executable-Flags werden selbstmodifizierende EXE-Files
scheitern, aus Sicherheitsgründen müssten sie sowieso verboten
sein.

Das hat jetzt alles relativ wenig miteinander zu tun. Das NX-Flag an sich kennzeichnet die Datenbereiche im Adressraum eines Prozesses als „nicht ausführbar“, d.h. ein Sprung aus dem Programm in diese Bereiche führt zu einem Fehler. Nichts abgesehen von zumindest theoretisch schon immer vorhandenen read-only-Flags hindert das Programm daran, irgendwelche Daten zu ändern. Allerdings ist es garnicht so einfach (zumindest unter Windows), schreibend auf eine in Ausführung befindliche Datei zuzugreifen, da diese für Schreibzugriffe gesperrt ist.

Was du wahrscheinlich meinst sind gar witzige Konstruktionen, die Maschinencode auf Stack oder Heap ablegen und dann mittels Funktionspointern oder anderen Mechanismen abrufen, aber das ist nicht das Thema der Anfrage.

Nebenbei bemerkt ist ein selbstmodifizierendes Programm nicht unbedingt gefährlicher als ein „statisches“, nur interessanter und schwieriger zu analysieren. Man kann ganz valide Mittel benutzen, um das NX-Flag oder seine Kollegen zu umgehen, insbesondere dynamische Linker denen man zur Laufzeit Daten aus dem derzeit laufenden Programm verfüttert, die dann in ausführbaren Bereichen des Speichers landen.

Das hat jetzt alles relativ wenig miteinander zu tun. …

Hallo Nikos,

ganz unabhängig davon, was welches Flag in welchem Betriebssystem bewirkt: meine Meinung ist, dass Programm-Dateien aus Sicherheitsgründen unveränderlich sein müssen. Andernfalls gibt es keine Schutzmöglichkeiten durch Hash oder sonstige Überwachung. Ein Programm, das in die eigene EXE schreibt, kann praktisch nicht vor einem Virusbefall geschützt werden.

Daher gehören Daten woandershin. Wie gesagt, das ist eine Meinung, kein Naturgesetz.

Gruss Reinhard

Daher gehören Daten woandershin. Wie gesagt, das ist eine
Meinung, kein Naturgesetz.

Das bestreiten niemand, aber wenn du deinen eigenen Gedankengang konsequent fortsetzt, müsste man jegliches Schreiben in ausführbare Dateien unterbinden, was aus praktischen Gründen schon nicht durchsetzbar wäre. Unter Anderem würde das bedeuten, dass man solche Dateien nicht mehr kopieren oder z.B. durch inkrementelle Updates modifizieren könnte.

Das bestreiten niemand, aber wenn du deinen eigenen
Gedankengang konsequent fortsetzt, müsste man jegliches
Schreiben in ausführbare Dateien unterbinden, was aus
praktischen Gründen schon nicht durchsetzbar wäre. Unter
Anderem würde das bedeuten, dass man solche Dateien nicht mehr
kopieren oder z.B. durch inkrementelle Updates modifizieren
könnte.

Warum nicht?

Ich fände es begrüssenswert, wenn Patches u.ä. nur von Administratoren installiert werden dürften. In einer konsequent administrierten Umgebung lässt sich das ja auch so regeln. Nebenbei wird auch noch verhindert, dass 20 Benutzer von Word mit 20 verschiedenen Versionen arbeiten.

Wahrscheinlich werden mir professionelle Admins zustimmen, Anwender eher nicht. Und Microsoft wird stolz darauf verweisen, dass unter Windows für jeden alles möglich ist.

Gruss Reinhard