WinSock Hook

  • Hallo StageTwo!
    Ich würde gerne wissen, wie ich einen winsock hook durchführen kann.
    Ich weiß, dass ich eine Dll injecten muss. Das ist auch kein Problem.
    Jedoch weiß ich bei dem winsock hook konkret, nicht weiter.
    Brauch ich keine Adresse angeben? Ich weiß nur, dass die *.exe in die ich die Dll injecten möchte, winsock verwendet und das würde ich gerne umleiten.


    BTW: Es handelt sich dabei um die ClientExe von Flyff.


    Kuh :>


    PS:
    Dieses Tutorial verstehe ich leider nicht: Klick

  • WinSock ist eine große Bibliothek. Was möchtest du genau hooken? Die connect Funtion?
    Was verstehst du an meinen Funktionen nicht?


    MfG

  • WinSock ist eine große Bibliothek. Was möchtest du genau hooken? Die connect Funtion?
    Was verstehst du an meinen Funktionen nicht?


    MfG


    Ja genau. Ich möchte die connect Func hooken.
    dongdong hat mir mit diesem SourceCode auch schon gut geholfen: Klick
    Jetzt muss ich nurnoch irgentwie die IP festlegen.
    dong meinte, dass ich das iwo in myConnect ändern muss.


    Kuh :>

  • Ich benutze immer MS Detour 1.5.(Klappt immer und ist relativ leicht)


    hier der code:


    einfach die ip zu deiner gewünschten ip ändern, dll erstellen und dann halt injecten

  • Hab die DLL von Dickernoob jetzt mal kompiliert und injected, aber der Client kann immer noch connecten.
    Sprich iwie hat das nichts gebracht ^^
    Man Problem ist ja das ich einen MMORPG Client auf eine IP connecten lassen möchte.
    Entweder mit diesem Detour oder mit einem Loopback-Adapter.
    Habs jetzt auch mal mit dem Adapter versucht, jedoch kann ich ihm nicht die IP 0.0.0.195 zuweisen, auf die der Client versucht zu connecten.


    Kuh :>

  • Jo ^^
    Durch dongdong bin ich etwas weiter gekommen.
    Anstatt eines normalen "connect"-Hooks, muss ich nämlich die WSAConnect-Funktion hooken.
    Klappen tut dies jedoch auch nicht ^^


    Kuh :>

  • ~PUSH~


    Kuh :>


    E: Wisst ihr vllt. was an dieser DLL falsch ist? Nichteinmal die MessageBox wird dargestellt.

  • Ich würde es mal damit
    versuchen es in die case-Abfrage unter DLL_PROCESS_ATTACH zu
    schreiben.



    Lern die Grundlagen bevor du
    solche sachen versuchst.



    mfg


  • Hab ich schon geht auch nicht.
    Ich versuche's nun THREAD_ATTACH.
    Was für Grundlagen?


    E: Geht auch nicht.


    BTW: Ich bekomme beim kompilieren noch 2 Hinweise.
    1. warning C4793: "_DllMain" : Funktion wird als systemeigen kompiliert
    2. Systemeigene Inlineassemblys werden in verwaltetem Code nicht unterstützt.


    Kuh :>

  • Bist du auch in der richtigen Datei? Bei mir war es mal so, dass ich es in die falsche Datei geschrieben habe :P.

    Jo. Erst hatte ich alles in der Header-Datei :>
    Aber ist schon lange alles geändert worden. Nun ist alles in der .cpp-Datei.


    DiNozzo was meinst du mit "Ka wie der Type bei dir heißt" ?
    Du sieht doch meinen Code :>


    Das mit der ClientRedirection ist ja eig erstmal egal.
    Die MessageBox geht ja nichteinmal.


    Kuh :>

  • Code
    1. typedef int ( *
    2. origConnect )( SOCKET s, const sockaddr* name, int namelen, LPWSABUF
    3. lpCallerData, LPWSABUF lpCalleeData, LPQOS lpSQOS, LPQOS lpGQOS );origConnect
    4. __origConnect;


    Code
    1. __origConnect = ( origConnect )DetourCreate(addr, ( void* )myConnect,
    2. 5 );origConnect __origConnect;


  • Code
    1. typedef int ( *
    2. origConnect )( SOCKET s, const sockaddr* name, int namelen, LPWSABUF
    3. lpCallerData, LPWSABUF lpCalleeData, LPQOS lpSQOS, LPQOS lpGQOS );origConnect
    4. __origConnect;


    Code
    1. __origConnect = ( origConnect )DetourCreate(addr, ( void* )myConnect,
    2. 5 );origConnect __origConnect;


    Geht auch nicht.
    Vllt sollten wir erstmal die DLL als solches zum laufen bringen.
    Sprich: Den ganzen WSAHook rauslassen und die MessageBox zum laufen bringen.
    Anscheinend kommt man nichtmal bis zum Case.


    Kuh :>

  • dann kann man dir auch net helfen
    schau dir mal die Dll-Programmierungs Grundlagen an

  • Okay dann muss ich wohl warten bis dongdong on kommt ^^
    Es muss am Code liegen. Andere DLL's (Delphi-Dll's) kann ich problemlos injecten.


    Kuh :>