IP Binding

  • Hallo StageTwo Coder !


    Ich bin in letzter Zeit damit beschäftigt, einen Flyff Proxy zu schreiben.
    Alles schön und gut, jedoch hänge ich an einer Stelle fest.
    Der Flyff Client versucht auf folgende Adresse zu connecten: 0.0.0.195:23000.
    Wenn ich aber einen Socket auf diese IP binden möchte bekomme ich eine Exception.
    Ist ja auch logisch, da diese IP nicht lokal ist. Also habe ich versucht diese IP als Stellvertreter für localhost zu implementieren. (in der hosts-Datei)
    Hat aber nichts gebracht und die Adresse auf die der Client connected kann ich auch nicht weiter manipulieren.


    Hab ihr vllt noch eine Idee ?


    Kuh :>

  • Die Hosts-Datei ist eh nur da für Manipulation der DNS Auflösung, sprich du kannst keine ip-adressen umleiten.
    Kannst du nicht irgendwie per hex editor oder sonst irgendwie den Flyff client direkt auf die andere IP umleiten?
    Sonst hilft nur WSA-Hook.


    MfG

  • Ah okay.
    Ich habs schon versucht. Aber die *.exe ist gepackt und es ist sogut wie unmöglich die zu entpacken (denke ich).
    Und wie soll ich einen WSA-Hook durchführen, wenn OllyDBG nur Müll anzeigt?


    Kuh :>

  • Hi,


    Also die IP 0.0.0.235 oder wie auch immer ist ungültig - die gibt es nicht. ;)
    Warum solltest du das Socket nicht an eine remoteIP binden können?
    Entweder mittels dem normalen Connect Befehl, oder mit dem asynchronen BeginConnect, was ja einen RemoteEP verlangt.


    Sollte also klappen ;)

  • Vielleicht liest du auch das falsche aus. Es könnte zB auch gut sein das das nur eine Hälfte der IP ist die mit einer anderen festen IP zB 192.168.1.0 per Binäroperation zur endgültigen verknüpft wird.


    Also:


    Flyff hat zB die Server: 192.168.1.1 bis 192.168.1.10


    Dann ist die Feste IP 192.168.1.0


    die einzelnen Server werden dann nur durch 0.0.0.1 bis 0.0.0.10 beschrieben.


    Mittels binärem UND machst du so 192.168.1.0 und 0.0.0.1 zu 192.168.1.1



    Das ist aber nur eine theoretische Überlegung.

  • Klar kannst du hooken, wenn du in Olly nichts siehst, hat ja damit nichts zu tun ;)
    Im Coding Releases Bereich müsste eine Funktion von Twice zum hooken sein, schau dir die einfach mal an :)


    Ansonsten kannst du per Loopback Adapter auch auf den Localhost umleiten.


  • Also WireShark zeigt mir an, dass der Client auf 0.0.0.195 connecten will.


    dongdong : Ich werds mir ansehen.


    Danke, kuhkuh.

  • Die IP ist falsch. Glaub uns das. ;)
    Ansonsten schau dir mal mittels netstat -a alle Verbindungen die zur Zeit bestehen & such die IP da raus.


    Hehe. ^^ Ne es kann ja sein, dass der Client eine Verbindung auf die IP 127.0.0.1 unterbinden möchte und deshalb auf diese IP connectet.
    netstat -a geht nicht, da der GameGuard alles blockt.


    Kuh :>