String in eine Exe schreiben



  • Hoi,

    ist es möglich, eine exe datei zu lesen bzw. also ich würd gerne einen String in meine exe schreiben um ihn nachher wieder auslesen zu können damit ich nicht 2 Dateien habe.
    Diesen String würd ich dann später gerne in eine Datei schreiben.



  • BZW: Kann ich überhaupt ne exe so lesen wie zb me txt datei?
    Sprich wenn ich Code aus einer .exe lese kann ich den in ne datei schreiben und das als exe speichern? (sprich ist diese datei als exe ausführbar?)

    W+rd mich echt interessieren thx



  • #include <windows.h>
    #include <tchar.h>
    
    char szTest[] = "Dies ist ein String der in der EXE steht";
    
    int _tmain()
    {
    }
    

    ?????



  • Oder Du schreibst den STring in die Resource und diese kannst Du auch extern via LoadLibraryEx(mit LOAD_LIBRARY_AS_DATAFILE) und LoadString auslesen.



  • Hi, k vielen dank genau was ich gesucht habe.

    Nur noch eine Frage:

    Kann ich zb eine exe via fscanf einlesen und dann in ne andere datei schreiben (in ne leere Datei die ich dann abspeichere) sodass diese dann ausführbar ist??



  • Ich würde nicht gerade fscanf() verwenden, sondern eher fread() und fwrite().

    Und ja, das sollte gehen. Vorausgesetzt du kopierst die ganze Datei 1:1 und machst sowohl die Quelldatei als auch die Zieldatei im "binary" Modus auf, also mit "rb" und "wb".

    Diverse Dateiattribute oder sonstige Informationen sind nicht notwendig, es reicht vollkommen wenn der Inhalt der Datei passt.

    Damit du die neue Datei halt aus dem Explorer oder von cmd.exe aus starten kannst sollte sie halt *.exe oder *.com heissen. Mit CreateProcess sollte es aber auch ohne spezielle Dateiendung gehen.

    p.S.: wenn du den String in eine Resource schreibst, dann kannst du den auch nachträglich ändern, z.B. mit jedem (guten) Resource Editor, müsste aber auch mit WinAPI Funktionen in einem eigenen Programm relativ einfach gehen.



  • K, vielen Dank!
    Wenns Probleme gibt meld ich mich eh wieder 😃



  • Dann poste mal wenn du Erfolg hattest 😉


Anmelden zum Antworten