Anti-Cheat na problemy i rozwiązania MMO? [Zamknięte]


14

Większość gier online cierpi z powodu tego problemu i istnieje kilka firm produkujących oprogramowanie , aby to rozwiązać, ale ostatnio z tego, co widziałem, większość firm stara się uniknąć, aby te programy tworzyły własny system (zamieć z naczelnikiem, aion z własnym sprawdzaniem itp. ...), ale bardzo trudno jest zapobiec takim ...

Chciałem tylko powiedzieć, że podałem inny temat pytania jako wiki społecznościowe dotyczące publikowania aplikacji. To funkcje, a ideami stojącymi za tym pytaniem nie jest ich lista, ale zamiast tego dowiedzieć się więcej o twoich próbach, problemach na drodze i możliwych rozwiązaniach. , kawałek kodów, jeśli aplikacja i tak dalej.

Jakiego rodzaju ochrony używacie, aby (próbować) zapobiec takim aktom:

  1. Oprogramowanie anty-cheatowe? (proszę podać, jakie, dlaczego i możliwe problemy, które napotkaliście, na przykład aion przestał używać GameGuard na etapie beta z powodu ogromnej liczby problemów ze zgodnością i narzekał na użytkowników)
  2. Twój własny kod? (jaki rodzaj weryfikacji zazwyczaj przeprowadzasz, aby upewnić się, że gracze w złej wierze, na przykład speedhack, weryfikują nową lokalizację względem prędkości + ostatnia lokalizacja itp.)
  3. Brak, nie obchodzi mnie to? (z jakiegokolwiek osobistego powodu lub informacji, którymi chciałeś się podzielić?)

Interesujący fragment kodu związany z problemem, który chcesz opublikować?

Czy mogę przerobić mój tekst na mój angielski inst tak dobrze? **


1
Tag wykonany. Jeśli spodziewasz się, że będzie to wiele odpowiedzi, zrób z tego wiki społeczności. Umożliwi to wielu osobom edytowanie indywidualnych odpowiedzi zamiast osób stale je przekształcających.
Jesse Dorsey

1
Na przykład, jak to może być korzystne. Sprawdź to: gamedev.stackexchange.com/questions/480/…
Jesse Dorsey

Dzięki za komentarz i linki sprawdzę to teraz i zobaczę, z mojego punktu widzenia, takie pytanie dotyczące rozwoju gier jest bardzo dobrym punktem do dyskusji, ale większość gier MMO wierzę, więc nie jestem pewien, również społeczność jest w tej chwili dość mała i bałem się, że na takie pytanie zacznę być negowany, więc nie jestem pewien, dziękuję za utworzenie tagu :)
Prix

Odpowiedzi:


22

Niestety naprawdę trudno jest powstrzymać ludzi od oszukiwania, dlatego oprogramowanie takie jak Punkbuster zostało stworzone, aby spróbować złapać niektóre z nich.

W przypadku gry MMO największą rzeczą, jaką możesz zrobić, jest po prostu nie ufać cokolwiek, co klient ci wysyła . Klient nie powinien być w stanie powiedzieć ci, dokąd przeprowadził się gracz, ile wyrządził szkód, komu itp. Zamiast tego powinieneś wysłać dane kontrolne na serwer, potwierdzić, że jest to praktyczne (naciśnięcie przycisku „ataku” Na przykład 1000 razy w ciągu 1 sekundy nie jest poprawna), a następnie zaktualizuj symulację na serwerze. Następnie wyślesz odpowiednie części nowego stanu gry z powrotem do klienta.

Podczas sprawdzania poprawności danych wprowadzanych przez użytkownika można również wyszukiwać trendy w danych wejściowych. Jeśli nie zezwalasz na makra, możesz je tutaj złapać, zauważając, że użytkownik kliknął ten sam przycisk z dokładnie tymi samymi współrzędnymi pikseli w idealnych odstępach 1 sekundy w ciągu ostatnich 30 minut.

Sam klient jest głównym miejscem, w którym ludzie mogą oszukiwać, więc programy takie jak Punkbuster mogą ograniczyć hacki na ścianie, aimboty itp. Poza tym, nie ufanie klientowi i sprawdzanie poprawności wszystkiego, co klient mu wysyła, pomoże ograniczyć oszustwo.


Dziękuję za wasz wkład. Mam nadzieję, że więcej osób włączy się w ich wkład; Rzeczywiście, jest to bardzo trudny problem do przeciwdziałania ... Są też tacy, którzy łamią grę, aby wyłączyć silnik anty-cheat i jest to wywołanie z niego ... co sprawia, że ​​wszystko jest jeszcze trudniejsze ... chyba że masz online GM, aby zweryfikować tę weryfikację danej osoby lub innych osób, takich jak Ty. co byś pomyślał jako to pytanie do wiki społeczności? czy powinienem zachować jak jest lub zmienić coś, aby było do tego dostosowane;
Prix,

Prawdopodobnie wiki społeczności, chyba że szukasz konkretnej odpowiedzi.
Sean James

Masz więcej szczegółów na temat działania Punkbuster, aby uzyskać bardziej kompletną odpowiedź?
Chris Lloyd,

Dobra odpowiedź - nie ma „jednego rozwiązania, aby rządzić nimi wszystkimi” - większość gier ma wiele „wektorów ataku”. Często chodzi o ocenę ryzyka bardziej niż cokolwiek innego, tj. Jaki jest wpływ na społeczność, jeśli ktoś może oszukać system X itp.
zebrabox

Wierzę, że hackowanie jest nieuniknione, nawet jeśli ma najsilniejszy program oszukiwania. Oszukiwanie jest w porządku, jeśli jest offline technicznie, ale nie online. Granie online to uczciwość. Czy tak jest
David Dimalanta

8

Logowanie. Wszystko, co dzieje się na serwerze, powinno być rejestrowane, a najlepiej wszystko, co pochodzi od klienta. Klient z natury nie jest godny zaufania, ale nawet rejestrowanie niezaufanych danych może być pouczające.

Po zarejestrowaniu wszystkiego wykrywanie oszustw staje się kwestią analizy danych. Niektóre kody będą oczywiste (wartości poza dopuszczalnymi zakresami, na przykład możliwość poruszania się między punktami znacznie szybciej niż normalnie pozwala awatar), inne są bardziej podstępne (jak aimboty umożliwiające celowanie w piksele w sztucznie krótkich ramach czasowych). Niektóre z nich są jeszcze trudniejsze do wykrycia (np. Włamania do ściany), ale nagrywanie tak dużo, jak to możliwe, umożliwia zarówno automatyczne, jak i ręczne wykrywanie. Są na nim różne artykuły, ale generalnie kody są bardzo łatwo wykrywane w automatycznym wykrywaniu, ponieważ są tak przewidywalne / powtarzalne, dokładnie tak, jak ludzie nie są.

Ponieważ nagrywanie absolutnie wszystko jest najprawdopodobniej niemożliwe, użyteczne jest rejestrowanie warstwowe. Na przykład raporty o oszustwach przez użytkowników lub zwykłe proste rejestrowanie wykrywające możliwość oszukiwania (wynik znacznie powyżej krzywej statystycznej) wystarczyłoby do oznaczenia konkretnego klienta / konta / klucza CD do bardziej szczegółowego rejestrowania, co mogłoby następnie zostaną wykorzystane do udowodnienia ponad wszelką wątpliwość, że oszust jest w użyciu.

To, co robisz po wykryciu oszustwa, to zupełnie inna sprawa. Banowanie konta po fakcie jest dobre, szczególnie gdy masz zautomatyzowany mechanizm wykrywania, który jest wystarczająco niezawodny. Wcześniejsze zablokowanie obu alarmuje oszustów o wykryciu, a także grozi fałszywymi trafieniami z powodu niejednoznacznych mechanizmów wykrywania. Banowanie zbyt późno grozi zniszczeniem gry dla innych. Jest to bardzo szara strefa i wymaga od deweloperów wydania wyroku.


2

Zakładając, że cała ważna praca w grze odbywa się po stronie serwera, oszustwo powinno być niewielkie lub nie powinno być możliwe. Jeśli chcesz ograniczyć tworzenie makr lub sprawić, że nie będzie uciążliwe edytowanie pakietów, niech twój program okresowo skanuje moduły aktywne w tym procesie. Jeśli znajdziesz na przykład WpeSpy.dll, będziesz wiedział, że mają dołączone WPE. Zrób to dla innych popularnych narzędzi. Można to obejść i jest to wyścig zbrojeń i przegrana sprawa, ale jeśli twoja gra jest stosunkowo niewielka, możesz bardzo łatwo zmniejszyć liczbę ludzi przekręcających się o około dziesięć razy ... i to może być dobre wystarczająco dla Ciebie.


Dzięki za wkład, czy korzystałeś z oprogramowania do oszukiwania lub miałeś problem z tym, którym musiałeś się zająć? jeśli tak, miło by było o tym usłyszeć.
Prix

2
Nie korzystałem z żadnego oprogramowania do oszukiwania innych firm, nie. Kiedy jednak zacząłem kodować RPG online, mój serwer po prostu nazwał „atak”, gdy klient wysłał „atak”, zamiast umieszczać żądanie w kolejce, takie rzeczy. Są one najważniejsze w zapobieganiu oszukiwaniu. Przyspiesz hakowanie, rób cały czas na serwerze, aby uzyskać niewielką przewagę, ale także wysyłaj znaczniki czasu, a jeśli będziesz miał zbyt duży dryf, będziesz wiedział, że go używają. Oznacz swoje konto, ale nie wykopuj ich od razu - natychmiastowa informacja zwrotna to świetny sposób, aby ktoś wiedział, co wykrywa twoje oprogramowanie.
James Bellinger

1
Podoba mi się ta część, w but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.której ostatnio zastanawiałem się nad wdrożeniem znacznika czasu i ostrzeżeniem systemu od zaznaczonych użytkowników, obecnie umieściłem odtwarzacz na liście, nad czym pracuję teraz, że jeśli niektórzy mają duże nadużycia, wyśle ​​alert do GM online do weryfikacji ...
Prix
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.