Daten an laufende Executable anhängen?



  • Hallo,

    wie nennt man das Verfahren wenn man an die eigene Executable, die gerade mit dem eigenen Program ausgeführt wird, Daten anhängen will, bzw. hatt hier damit schon jemand Erfahrung? Geht das mit WINAPI Befehlen oder befindet man sich hier schon in speziellen Hacks?

    Grüße
    TheNoName



  • Nennt sich "injecten". Funktionsweise ist simpel:

    Mittels VirtualAllocEx wird Speicher der Größe der zu anhängenden Daten (meistens die DLL-Größe) allokiert. Danach werden die Bytes mittels WriteProcessMemory an den allokierten Speicher geschrieben. Nun wird durch GetProcAddress die Adresse zur Funktion "LoadLibrary" in der kernel32.dll herausgefunden. Durch CreateRemoteThread wird nun ein neuer Thread erstellt, bei dem als ThreadFunc-Funktion die Adresse zu "LoadLibrary" angegeben wird, und als Parameter die Adresse des allokierten Speicherts (= den Anfang der DLL).

    Fertig.



  • Und wann werden die Daten auf die Festplatte geschrieben und damit die Größe der Executable verändert?
    ps. ich will keine DLL anhängen, sondern eine Art Ini Datei mit Konfigurationsdaten.



  • Die Exe-Datei ist gesperrt, solange sie ausgeführt wird, und kann somit nicht verändert werden. Programm-Einstellungen in der Exe zu speichern ist auch eine total abgwegige Idee. Es gibt spezielle Ordner für Programm-Einstellungen pro Rechner, pro Benutzer, mit Roaming usw...



  • Ja, da hast du recht, am besten man speichert die Kopierschutzdaten im öffentlichen Ordner mit dem Namen "ändere.mich" ab.



  • Ich glaube, Deine Fragen zu beantworten ist reine Zeitverschwendung.



  • thenoname schrieb:

    Ja, da hast du recht, am besten man speichert die Kopierschutzdaten im öffentlichen Ordner mit dem Namen "ändere.mich" ab.

    Ist jedenfalls ähnlich sicher wie das Anhängen an eine .exe 😉


Anmelden zum Antworten