WinSock Hook

  • Du musst keinen Typen zum casten erstellen. Ich find's hässlich und unnötig, da du den sowieso nur einmal brauchst und dann auch ganz normal casten kannst.

    Code
    1. orig_connect = ( int ( __stdcall * )( SOCKET, const struct sockaddr*, int ) )DetourCreate( <...and so on...> );


    Das einfach mit Inline Assembler zu machen ist eine elegante aber auch gefährliche möglichkeit. Bei mir klappt das nicht immer, weil ich nicht weiß, was mir der Compiler am Ende daraus macht.


    Zu deinem Problem:
    Hast du schonmal versucht zu debuggen? Die Werte zur Laufzeit ausgegeben?
    Ich tippe darauf, dass du das Ergebnis von GetProcAddress noch in einen void* casten musst. Sonst wird das falsch interpretiert meine ich mich zu erinnern.


    MfG


  • Und wieso geht dann die MessageBox nicht?


    Kuh :>

  • Meinen eigenen ^^
    Wie gesagt: Bei den Delphi DLL's ging der immer ^^


    Kuh :>


    SourceCode (C#):

  • Ich bekomme diese Fehlermeldung beim Injecten:


    Kuh :>


    E: Wenn ich "DetourCreate(addr, ( void * )myConnect, 5 );" in der DllMain auskommentiere, dann bekomme ich diese Fehlermeldung nicht.


    Kuh :>

  • Die Fehlermeldung sagt dir doch, was falsch ist.
    Sind deine Projekteinstellungen richtig?


    MfG

  • Die Fehlermeldung sagt dir doch, was falsch ist.
    Sind deine Projekteinstellungen richtig?


    MfG


    Common Language Runtime (/clr) wird bei meinem Projekt unterstützt, weshalb ich diese Fehlermeldung bekomme.
    Wenn ich mein Projekt jedoch auf "Keine Common Language Runtime-Unterstützung stelle, dann bekomme ich Fehler beim kompilieren.

    Alle in der AssemblyInfo.cpp:

    'System': Es ist kein Namespace mit diesem Namen vorhanden
    'System': Keine Klasse oder Namespace
    'Reflection': Es ist kein Namespace mit diesem Namen vorhanden


    usw ...


    Kuh :>


    E: Hab meinen Fehler evtl. gefunden.
    E2: Es tut sich endlich etwas ! Habe das Projekt als Win32 Anwendung kompiliert und mit dem StageTwo Injector injected !
    Die MessageBox erscheint nun und das injecten hat anscheinend funktioniert. Das einzige was nun noch nicht klappt, ist der WSAConnect hook.


    Kuh :>