Hooking related question



  • Hi,

    Ich habe eine cDetour class, die von einer DLL eine funktionen hooken kann.

    Mein Problem ist jetzt, dass die klasse über getprocaddress die funktion holt und anschliessend wird sie detoured (Kein problem bei einer DLL)!

    aber ich muss eine funktion von einer (.exe) hooken z.B StartFile() und getprocaddress funktioniert doch nur in verbindung mit einer dll oder nicht?

    kann mir wer sagen, wie ich das jetzt am besten mache?
    waere dankbar

    gruss,
    felix w.



  • Exe-Dateien enthalten keine Variablennamen (oder Funktionsnamen) mehr, daher ist dies nicht möglich. Eine DLL enthält gerade deshalb eine Liste mit allen Funktionsnamen.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ich kann auch den offset sochen, da wo die funktion im ist.

    aber wie kann ich die detouren?

    hast du irgendwelche example codes?

    (codeproject, uvm)?

    mfg,
    felix



  • Th schrieb:

    Exe-Dateien enthalten keine Variablennamen (oder Funktionsnamen) mehr, daher ist dies nicht möglich. Eine DLL enthält gerade deshalb eine Liste mit allen Funktionsnamen.

    Auch wenn das nicht zur Lösung des Ursprungsproblems beiträgt:

    Executables können genau wie DLLs Symbole exportieren. Das ist völlig legal.

    Gruß,

    Matthias.



  • danke_Fuer_die_antwort schrieb:

    ich kann auch den offset sochen, da wo die funktion im ist.

    aber wie kann ich die detouren?

    hast du irgendwelche example codes?

    (codeproject, uvm)?

    mfg,
    felix

    Hierfür gibt es keine triviale Lösung, die mir bekannt wäre. Letztlich würdest
    Du hierzu wohl im Adressraum des zu hookenden Prozesses rumfummeln müssen.
    Wie kommst Du an den offset der besagten Funktion ? Wie bringst Du Deinen
    Detour Code sauber in den fremden Adressraum ? Das ist nicht unmöglich, aber -
    wie gesagt - recht kompliziert, wenn man nicht wirklich weiß, was man da tut.

    Gruß,

    Matthias.


Anmelden zum Antworten