CreateRemoteThread Äquivalent (ptrace)



  • Hallo 🙂

    Ich porte meine Library für Linuxsysteme und stehe gerade vor einem dummen Problem:

    Ich muss einen Ersatz für CreateRemoteThread finden, einer Windowsfunktion die einen Thread in einem fremden Prozess erstellt.

    Erste Googleergebnisse haben mir verraten, ich soll per ptrace den anderen Process dazu überreden pthread_create aufzurufen.

    Jetzt lese ich gerade zum drölften Mal die Dokumentation zu ptrace durch und ich komm nicht drauf.

    Kann mir bitte jemand auf die Sprünge helfen? Danke 🙂
    Grüße,
    Ethon



  • Ok, ich glaub ich weiß es ...

    Eben mit GetThreadContext auf Windows rumgespielt.

    Da bin ich auf die Idee gekommen mit ptrace

    1. Einen Thread zu pausieren
    2. Register backuppen
    3. Instructionpointer und andere nötige Register/Stackvariablen patchen
    4. pthread_create aufrufen
    5. Alte Register wieder einspielen
    6. Thread weiterlaufen lassen.

    Klingt zwar affig...aber es gibt wohl keine andere Möglichkeit 😕



  • Kannst du den remote process verändern? Falls ja, dann kannst du da einen Thread starten der auf eine IPC-Botschaft vom Hauptprozess wartet und wenn diese kommt einen Thread erzeugt und gleich wieder warten geht.


Anmelden zum Antworten