Panie i panowie, przedstawiam tibiaproxy ^^. Projekt jest w całości napisany w Pythonie i na razie w fazie "proof of concept". Jest to proxy dla serwerów Tibii bazujących na protokole 10.22, w tym real Tibii. Proxy potrafi podmienić wiadomości od login servera tak, żeby połączenia przechodziły przez niego, a następnie - w trybie game servera - przesyłać pakiety między graczem a serwerem. Jako dowód, że proxy pośredniczy w ruchu, wszystkie próby powiedzenia w grze czegokolwiek, co zaczyna się znakiem ">" będą skutkować próbą uruchomienia tego, co gracz napisał jako kodu Pythona, bez przesyłania tego dalej do serwera. Poniżej screen:
http://imageshack.us/a/img812/305/yxnc.th.png
Podrzucam to raczej jako ciekawostkę - program w tym momencie jest raczej bezużyteczny, właściwie to gdybym wiedział, ile zajmie mi doprowadzenie go do aktualnego stanu, prawdopodobnie bym go nie zaczął. Nauczyłem się jednak masy rzeczy na temat protokołu Tibii. Lista TEORETYCZNYCH rzeczy, które takie proxy mogłoby robić, gdyby je dalej rozwijać:
- grzebanie w pakietach - cele edukacyjne (nauka protokołu Tibii), eksperymenty z hackami mieszającymi w serwerze, zgrywanie map do OTSów, zaawansowany TibiCam,
- tzw. headless bot - bot, który nie wymaga włączonego komputera z Tibią do działania. Możnaby go zainstalować na przykład na domowym routerze z oprogramowaniem typu DD-WRT (lub innym OpenWRT). Mogłoby to się przydać w scenariuszu, w którym proxy jest zainstalowane na serwerze z bardziej stabilnym połączeniem internetowym i w przypadku gdy gracz się rozłączy (codzienność przy Neostradzie), bot powiedziałby o tym swojej drużynie i UHał swojego właściciela, póki nie wróci on do gry (a może także uciekł w bezpieczne miejsce),
- łączenie kont, dzielenie się kontem między znajomymi - teoretycznie możnaby sprawić, że dwie osoby weszłyby na to samo konto i kontrolowały je bez kickowania się nawzajem. Możliwe jest też dodanie funkcji, która pozwoliłaby na połączenie kilku kont - wpisujesz jeden, z góry ustalony login i hasło, a przy logowaniu możesz wybierać postacie z kilku różnych kont zebrane w jednym miejscu,
- multiclient w wersji hardcore - łączenie się przez inne proxy (Tor? pewnie zbytnio by lagował) tak, aby MC było trudniejsze do wykrycia.
Co do szczegółów technicznych, program składa się z 969 linii, w tym tak naprawdę tylko 414 to kod, reszta to komentarze i puste linie dla estetyki. Starałem się, żeby było jak najczytelniej a kod był jak najprostszy, poświęciłem też ciut czasu na napisanie README.txt (którego i tak pewnie nikt nie przeczyta). Przyznam, że prawie nie testowałem tego proxy - trochę pochodziłem po domyślnej mapie The Forgotten Servera (do znalezienia tutaj: https://github.com/otland/forgottenserver). Program się nie wysypał, choć druga próba zalogowania już się nie uda (nie testowałem tego też na liście postaci dłuższej niż jedna).
Póki nie zobaczę choć minimum zainteresowania moim projektem, nie mam w planach pisać instrukcji jak go uruchomić - przy odrobinie szczęścia może wystarczy Ci plik README.txt z paczki z kodem. Jeśli znasz trochę Pythona i chcesz się pobawić w rozwijanie tego projektu, opisz tu swój problem, może uda mi się Tobie pomóc.
Projekt hostowany jest na githubie - najnowsze wydanie można pobrać tutaj:
https://github.com/d33tah/tibiaproxy/releases