einstellungen immer wieder in exe speichern

  • hi leute

    mein problem ist, dass ich versuche, einen string in einer exe datei zu speichern und wieder auszulesen
    nun das problem

    1. ich darf nicht mit der registrierung abrbeiten
    2. es muss eine einzelne exe sein also keine extrene setting.txt oder ähnliches
    3. der string wird immer wieder geändert

    ich hoffe ihr könnt mir helfen

    Einmal editiert, zuletzt von alexanderschill (4. Oktober 2010 um 19:50)

  • Du kannst es im Speicher halten, aber was wenn der PC ausgeschaltet wird.
    Warum keine Ini oder Registry (wenn vertrauliche Infos, kann man es auch crypten)
    Ansonsten evtl. die Exe dann neu kompilieren, aber dann sind zwischendurch auch mehr Dateien am Werk...
    Also au3 mit einpacken und die Datei die fürs "Compilieren" nötig ist und die au3 zur Laufzeit bearbeiten.
    Kann klappen halte ich aber für Blösinn.
    Mach ihm (der halt die Auflagen wünscht) lieber klar das man in der exe keine Daten speichert.

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    Einmal editiert, zuletzt von Dietmar (5. Oktober 2010 um 11:05)

  • Hi!

    Das wird nicht möglich sein, das was du machen kannst ist eine Stringverarbeitung einzubauen!
    Wenn dein code Compile ist dann ist die veränderung nicht mehr sagen wir fast nicht mehr möglich ausser das einfachste mit ein Hex-Editor.


    LG Kleiner

  • Irgendwie als kommentar (etwas ohne funktion) in der exe zu speichern ist auch net möglich? :/

    Würde mich nämlich auch brennend interresieren.

    Greatz :huh:

  • mit dem http://www.wilsonc.demon.co.uk/d10resourceeditor.htm kann man Ressourcen u.a. auch in EXE Dateien anpassen

  • mit dem http://www.wilsonc.demon.co.uk/d10resourceeditor.htm kann man Ressourcen u.a. auch in EXE Dateien anpassen

    Was ihm aber nichts bringt, da er scheinbar zu Laufzeit diesen Eintrag in der exe setzen will, er sich immer wieder verändert und kein externes Programm dazu genommen werden soll.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Oh hab nicht gelesen ^^.
    Könnte man das denn nicht in den Speicher packen worauf dann die exe zugreift?

  • Sag mal m-obi du postest auch einfach ohne zu lesen oder? Ließ mal den ersten Post nach dem Startpost.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ganz ehrlich....ich war grad zu faul zum lesen, bisschen träge. Aber eigentlich lese ich immer alles ;)

  • Zitat

    Was ihm aber nichts bringt, da er scheinbar zu Laufzeit diesen Eintrag in der exe setzen will,

    Naja, dann erstellt er eben in der EXE im Resourcezweig per Resourceneditor einmal einen String und ändert diesen dann zu Laufzeit. Das Offset dieses Strings in der Datei bleibt ja immer gleich und kann hardkodiert mitkompiliert werden. Wozu der Quatsch eigentlich? Denn

    Zitat

    1. ich darf nicht mit der registrierung abrbeiten
    2. es muss eine einzelne exe sein also keine extrene setting.txt oder ähnliches
    3. der string wird immer wieder geändert

    hört sich nicht nach einer "normalen" Anwendung an, um das mal vorsichtig auszudrücken!

  • Mein erste Gedanken war auch ein Virus der seine Code selbst ändert um so seine Signatur zu verschleiern. Aber man soll ja nicht immer vom schlimmsten Fall ausgehen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • vielleicht kann man ja eines der extensions der exe datei "mißbrauchen".. wenn es ein gegenpart zu

    [autoit]

    GetExtProperty($sPath,$iProp)

    [/autoit]

    gibt.
    Dann könnte man einfach seinen String in die Exe schreiben. Könnte höchstens noch probleme geben, dass man eine geöffnete Datei nicht so einfach abändern kann.

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • oh mein gott dieses thema scheint ja richtig wichtig zu sein

    also soviele posts hatte ich nicht erwartet respekt

    also noch mal zu diesem hier

    Mein erste Gedanken war auch ein Virus der seine Code selbst ändert um so seine Signatur zu verschleiern. Aber man soll ja nicht immer vom schlimmsten Fall ausgehen.

    das kannst du getroßt vergessen ich bin kein hacker und werd nie einer sein
    ich möchte einfach nur diese dämlichen inis bei mir abschaffen, denn einstellungen sind dann immer wieder weg wenn man vergisst sie jemandem anders mit zugeben des wegen will ich eine komplett portable anwendung schreiben, die nur eine einzige datei ist und kein archiev.

    mir wär es theoretisch egal wenn es eine temporäre ini schreibt, nur die muss beim programm ende mit den änderungen wieder in der exe verschwinden

    also bitte wenn es euch alle so interessiert schaut mal ob ihr nicht irgendwo in den tiefen eures pcs noch irgendsowas findet mit dem man soetwas realisieren kann

  • hi leute ich hab soeben die einfachste möglichkeit entdeckt
    ist zwar nicht sehr elegant aber funktioniert

    man kann einfach hinten an die datei einen string dranschreiben, und die datei ist nicht beschädigt nur das auslesen ist ein problem

  • Zitat

    ich möchte einfach nur diese dämlichen inis bei mir abschaffen, denn einstellungen sind dann immer wieder weg wenn man vergisst sie jemandem anders mit zugeben des wegen will ich eine komplett portable anwendung schreiben, die nur eine einzige datei ist und kein archiev.

    Na wenn das alles ist und dich die Ini nicht stört keine Angst Du bekommst die nicht verloren.

    [autoit]

    Dim $scriptdir = @ScriptDir
    If StringTrimRight($scriptdir, 1) <> "\" Then $scriptdir &= "\"
    Dim $ini_file = $scriptdir & "Install-Log.ini"
    If Not FileExists($ini_file) Then FileInstall("C:\Dokumente und Einstellungen\Dietmar\Desktop\Installationstest_neueVersion\install_log.ini", $ini_file)

    [/autoit]

    Im schlimmsten Fall hast Du die Default Settings aber besser als nix

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • also hier ist mal die minifunktion zu auslesen des strings

    Spoiler anzeigen
    [autoit]


    ;$Start=Muss vor dem eigentlichen string in der exe angegeben werden ( Standard ist "StartofString")
    ;$Exe= voller pfad zu exe datei
    Func ReadStringfromExe($Exe = @ScriptFullPath, $Start = "StartofString")
    $Search=StringSplit(FileRead(FileOpen($Exe,16)StringTrimLeft(StringToBinary($Start),2),1)
    Return $String = BinaryToString("0x"&$Search[2])
    EndFunc

    [/autoit]

    Edit: Die funktion zum reinschreiben kommt auch noch
    Edit:

    Spoiler anzeigen
    [autoit]


    Func ReadStringfromExe($Exe = @ScriptFullPath, $Start = "StartofString")
    $Search=StringSplit(FileRead(FileOpen($Exe,16)StringTrimLeft(StringToBinary($Start),2),1)
    Return $String = BinaryToString("0x"&$Search[2])
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WriteStringtoExe($Exe = @ScriptFullPath, $Start = "StartofString")
    $Search=StringSplit(FileRead(FileOpen($Exe,16)StringTrimLeft(StringToBinary($Start),2),1)
    FileDelete($Exe)
    FileWrite($Exe,$Search[1]&StringToBinary($Start)&$Search[2])
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von alexanderschill (5. Oktober 2010 um 18:19)