W jaki sposób mógłbym odczytać pakiety z gry?

0

Witam.
Zależy mi na tym, by odczytać pakiety z gry. Nie chcę tego robić w WPE PRO, Wiresharku, a we własnym programie.
Czy jest możliwe napisanie takiego czegoś w delphi? Słyszałem o metodzie PROXY, czy to jest najłatwiejsza metoda, która pozwoli mi na przeczytanie pakietów? Ja nie planuję wysyłać pakietów, chcę jakby podsłuchać co gra wysyła do mnie. Nic więcej. Dodam, że te pakiety nie są szyfrowane.

0

Mozliwosc jest. Jesli to Ci pomoze to szukaj pod haslem TCP/IP Sniffer Delphi lub kombinacje tych 4 wyrazow. :)

0

Oczywiście jest możliwość zrobić to, co chcesz. Najprostsza to własny sniffer. Lub bardziej inwazyjna: spoofnięta dllka albo dllka wstrzyknięta w proces gry, ktora zakłada hooka na funkje API odczytujące lub wysyłające pakiety. Polecam pokombinować z kodem źródlowym dołaczonym do tego posta. jest to prosty sniffer wyłąpujący GET'y po HTTP. Wszystkie potrzebne moduły są w archiwum. Kompilowane pod Delphi 7 i do działania wymaga WinPCap'a oczywiście. Nie bawiłem się wiele kodem, ale podejrzewam, że można również łatwo przechwytywać pakiery bajtów po TCP/IP.

0

Jesteś pewien, że to właśnie dzięki Winpcap będę mógł przechwytywać tego typu pakiety? : 00 03 A9 03 00 35 32 30 83 CB 00 E8

Z tego co wiem, to programy do sniffowania pakietów (typu WPE PRO) działają przy użyciu Winsock.

Co do DLLki to niby było by OK, ale odpada mimo wszystko :D W życiu nie zrobiłem żadnej DLL, więc na chwilę obecną nawet nie mam chęci się tym bawić.

0

WinPcap znaczy doslownie Windows Packet Capture i jest port na windowsa biblioteki pcap do przechywytwania ruchu sieciowego. Korzysta z niej nie tylko Wireshark, ale i masa innego softu, tcpdump czy nmap chociazby.

0

Myliłem się. Pakiety są szyfrowane : ), więc jak na razie to dla mnie nie do ogarnięcia. Mógłbyś w takim razie powiedzieć coś więcej o tej DLL?

2

http://vexillium.org/?sec-dllsp
Chociaz to i tak niezbyt pomoze w kwestii szyfrowania.

1

@DroniC: to z szyfrowaiem też nic nie zrobisz, nawet dllką. Przechwytując pakiet poprzez hook na funkcje API do obśługi socketów też będziesz miał jego zaszyfrowaną postać. Co do dllki to na forum postowałem swoje kody to obrazujące już chyba z 45 tysięcy razy. Ludzie jednak nie chcą szukać albo i skorzystać, to się nie będę kolejny raz narzucał swoim kodem, bo ileż można. Sorry.

Natomiast podany link do strony przez poprzednika, pokazuje przykład dla kodu w C++. W Delphi dllkę do spoofnięcia należało by zrobić chyba nieco inaczej. To znaczy na ogół wystarczy o ile wiem "przekierować" Result exportowanej funkcji o takiej samej nazwie jak oryginalna - na dllkę w SYSTEM32\ i tyle. W kodzie już później można sobie zapisywać do pliku co potrzebujemy itp. Same deklaracje popularnych funkcji API najlepiej "porkraść sobie", albo ze źródel Lazarusa, albo z dołączonych źródel VCL i RTL do wersji Enterprise, choćby od Delphi 7. I jeżeli nigdy nie napisałeś żadnej dllki, to chyba najwyższy czas. Jednak obawiam się, że wziełeś się za zbyt trudny dla siebie temat. Bo jakbyś poświęcłł chwilę czasu to wszystkie niezbędne kody i opisy znalazł byś samemu.

0

Również obawiam się, a raczej jestem pewien, że ten projekt to dla mnie za dużo. Dlatego zapytam: Jaką dllkę powinienem stworzyć na pierwszy raz ? :)

Ps. Mówisz, że umieszczałeś na forum już coś takiego. Niestety ja linka znaleźć nie mogę. Masz to może gdzieś w zakładkach, czy coś?

1

Załącznik nazywał się winsock_hook.rar więcej nie znajdę. Jestem poza domem na Androidem. Jakiś przykład spoofniętej dllki w Delphi ze źródłami chyba jako lamerski color fix dla ddraw.dll też gdzieś zapodawałem na sieci. A i jako pierwsza dllka bez znajomości podstaw to według mnie nic ze spoofowaniem czy hookowaniem na API nie będzie łatwe dla nikogo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1