Proxy connection aufnehmen (scheitert)

  • Hallo stagetwo,


    ich versuche jetzt seid einigen Tagen eine proxy connection herzustellen, damit ich dadrüber immer die Packete senden kann.
    Das Projekt ist im Anhang.
    Die Console spuckt mir nur aus, dass er auf eine connection wartet aber dann doch nix passiert...

  • 2x haben es schon runtergeladen.


    Startbutton:


    Der rest von Drew benton Security API + eine WinApi.cs

  • Du meinst zu redirecten.
    Das ich mein Programm über einanders laufen lassen um damit die packete zuempfangen?
    >Nein habe ich noch nicht, da ich es so erst garnicht haben möchte :P

  • Komisch, habe nun
    e.Start();
    auskommentiert, nun klappt die verbindung.


    ---
    Jetzt muss ich nur noch ein eigenen Proxy machen, dass ich den edx_loader nicht brauche :)


    -- Update --


    Packete senden klappt zwar, aber danach bekomme ich C9 (zumindest schon beim einloggen wenn ich das Einlogpacket sende)

  • Update !
    Bin nun am probieren mit dem Proxy beispiel von drewn benton.
    Leider sagt mir die CMD , dass es normalerweise so ist das nur eine IP benutzt werden darf und nicht zwei oder er nimmt eine connection an.


    Hoffe Ihr habt ein rat.
    Komplettesource ist im Anhang.


    Edit: Ich bin nun auch ein bisschen verwirrt.
    Muss ich den Proxy so mit den IP's verbinden ?


    und in der Proxy.cs so ?

  • Du musst darauf achten, das der Port vom ag_local_server und der, der in dem 0xA102 Packet and die gw_local_security gesendet wird, gleich sind. Das Packet sagt dem Clienten, wohin er sich verbinden soll. Ich würde dir auch raten, den Proxy in einem neuen Thread zu starten, weil sonst deine Form blockiert wird.
    Dass der Fehler kommt, dass nur eine IP benutzt werden kann, liegt wahrscheinlich daran, dass du Test1() und Init() aufgerufen hast und sich dann beide Proxys versuchen am gleichen Port zu binden. Du brauchst ja eigentlich auch nur eins. Ich würde die Proxy Class empfehlen, da ich es einfacher finde.


    Die local Sachen, sind die, die sich mit dem SRO_Client verbinden bzw. auf eine Verbindung mit ihm warten, also müssen die an 127.0.0.1 gebunden werden. Die remote_clients, sind die, die sich mit dem Server verbinden. Der gw_remote_client verbindet sich mit dem Login Server und der ag_remote_client mit dem Game Server. Du musst eigentlich nur den gw_remote_client ändern, weil man während des logins das 0xA102 Packet bekommt, in dem IP und Port vom Game Server sind. Das sind bei der Proxy.cs xfer_remote_ip und port.

  • Danke für die antwort.


    Ich habe nun folgendes geändert:

    Code
    1. ag_local_server = new TcpListener(IPAddress.Parse("127.0.0.1"), object2.clientPort+1);
    2. //HINWEIS object2.clientPort+1 = 16001;


    Bei Packet 0xA102

    Code
    1. Packet new_packet = new Packet(0xA102, true);
    2. new_packet.WriteUInt8(result);
    3. new_packet.WriteUInt32(id);
    4. new_packet.WriteAscii("127.0.0.1");
    5. new_packet.WriteUInt16(16001);
    6. gw_local_security.Send(new_packet);


    Ich rufe nun nur Init() auf, lasse es aber erstmal im Form auch wenn diese geblockt wird.


    Code
    1. gw_local_server = new TcpListener(IPAddress.Parse("127.0.0.1"), object2.clientPort);
    2. //HINWEIS object2.clientPort = 16000;


    Code
    1. gw_remote_client.Connect("146.0.73.76", 15779);


    [headline][/headline]
    Update:
    Habe nun RedirectIP eingebaut und nun steht die verbindung :)