Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Zainteresowałem się ostatnio zrobieniem bota do gry, np. Shakes And Fidget. Kiedyś grałem, znajomi ciągle mają konta i narzekają na swojego bota ściągniętego z neta (sf bot dla ciekawych). Zapewne jest to przeciwko regulaminowi, a ja osobiście nie mam ochoty na kłótnię z niemieckimi przedsiębiorcami, ale jestem ciekawy, jak to wygląda od środka.
Domyślam się, że działa na zasadzie nagłówka HTMLoweg, pytanie tylko czy wszystkie dane przesyłane są jawnie? (SF bot jest programem na desktop, nie korzysta z przeglądarki [chyba])
Wymaga to JEE?
Widziałem boty zrobione na Selenium, ale wygląda to dosyć prowizorycznie...
Nie znam Shakes And Fidget - ale jak przeglądarkowa gra to w sumie bywa prosto.
Albo podglądasz komunikację w chromie lub firebug.
Albo stawiasz sobie proxy server na komputerze i podsłuchujesz (np. Fiddler).
Potem piszesz bota np. korzystając z HttpClient gdzie robisz
parsowanie jsonów/ htmli itp.
walkę z prostackimi zabezpieczeniami (np. http headery typu referer, ale wszystko da się sprawdzić metoda prób i błędów).
(ja to robiłem tak, że jeśli nie dostawałem poprawnej odpowiedzi z serwera to analizowałem gdzie moja komunikacja się różni od tej z przeglądarki ,
każdy szczegół (headery głównie), ale czasy nadawania też mogą być brane pod uwagę (np. nie wysyłamy żądań częściej niż raz na sekundę itp.)
Gorzej z Captcha (chyba, że jest kiepsko zrobione - ale to też do przejścia: https://deepmlblog.wordpress.com/2016/01/03/how-to-break-a-captcha-system/).
JavaEE jest do tego absolutnie zbędne, a nawet bardzo przeszkodzi.
Wiele zależy od specyfiki gry - kilkanaście lat temu napisałem mega prymitywnego bota do gry przeglądarkowej (Starkingdoms). Parsowanie html robiłem
metodą html.substring(html.indexOf("<div class='player'"), ....) (O rany... sam z tego się śmiałem)
Przetrwał kilka lat i kilka zmian szaty graficznej gry (drobne zmiany w HTML dawało się, mimo durnoty kodu, szybko dopasować).
Zwykle jest to łatwe bo autorzy gry poświęcają raczej czas na implementowanie ficzerów, a nie walkę z botami, szyfrowanie komunikacji, obfuskację.
(Bo i tak nie mogą w 100% botów powstrzymać ).
Zrobiłem małe rozeznanie w temacie, ogarnąłem, że gra jest zrobiona w PHP + JS.
Średnio to wyglądało, chociażby ze względu na to, że narzędzia w Mozilli pokazywały mi tylko część elementów, które były przesyłane.
Co innego kiedy przeszedłem z flasha na wersję HTML5, tam pokazuje mi się wszystko. Mniej więcej ogarniam czas odbioru nagłówków.
Mam jednak problem z tym, że praktycznie wszystko jest w JS - gołego HTMLa praktycznie nie ma.
Teraz pytanie - czy muszę przegrzebać skrypty w JS czy wystarczy sprawdzić same nagłówki?