(WinAPI) Code aus dem Speicher ausführen



  • Ist es möglich, Code aus einer Datei (.exe/.dll oder so) in den Speicher zu laden und ihn dann da auszuführen? So à la:

    char data[12345];
    ... //lade den Code da rein
    foo(data);
    


  • Ich glaube eigentlich nicht das es Maschienen gibt die den Code nicht aus dem Speicher heraus ausfuehren, also wenn du ein Programm startest sollte der da automatisch, je nach groesse, ganz oder Teilweise, reingeladen werden.



  • Das ist mir schon klar, ich dachte eigentlich an einen Ablauf wie:

    • A lädt B
    • A murkst ein bisschen am Code von B herum
    • A führt den modifizierten Code von B in einem neuen Prozess/Thread aus


  • Unter Windows kannst du dir ne DLL (und AFAIK auch ne Exe) als Modul laden und dann wenn du die Parameter, Rückgabe etc. kennst Funktionen daraus ausführen. LoadLibrary und GetProcAddress aus der WinAPI können dir da weiter helfen. Für weitere Infos solltest du dich in das WinAPI-Forum verschieben lassen 😉 .



  • schau dir mal an, wie buffer overflows ausschauen. (google) is bisschen kompliziert, musst bisschen asm können, dann kannste sowas in dein programm eingauen



  • Original erstellt von Entyl_Sa:
    Ich glaube eigentlich nicht das es Maschienen gibt die den Code nicht aus dem Speicher heraus ausfuehren

    Klar der Code eines Programms wird fast immer in den Speicher geladen. Das nutzen Cheats/Exploits/Würmer etc aus.

    So gibt es z.B. OpenGL Hacks (um z.B. die Wände transparent machen), die nachdem das Spiel die opengl32.dll geladen hat, mittels WriteProcessMemory(...) den Code manipulieren.


Anmelden zum Antworten