coyote
9/15/2007 8:21:00 AM
Czesc wszystkim.
W skrocie:
Mam takie pytanie, jak zabezpieczyc proces (win32, konkretnie xp i wyzej)
przed probami myfikacji jego pamieci przez inne procesy ?
Dluzej:
Otoz popelnilem pewna gre sieciowa (RPG, produkt komercyjny wiec nazwy nie
wymieniam)
dzialajaca na zasadzie peer-to-peer, jest nadrzedny server zarzadzajacy, ale
ze wzgledu na koszty
utrzymania lacza sluzy on tylko do nawiazania polaczenia miedzy graczami,
dalej caly ruch odbywa sie
na zasadze peer-to-peer miedzy graczami, tylko co jakis czas (5 minut)
postac gracza jest save'owana
na serverze.
No i teraz problem, w sesji gra sobie powiedzmy 200 uczciwych graczy, ale
znajdzie sie jeden kretyn
ktoremu tylko cheatowanie w glowie i np. przy pomocy softice'a (albo
czegokolwiek innego) gdzebie
sobie po pamieci procesu i dodaje sobie np. zlota.
W kodzie gry sa mechanizmy sprawdzajace czy ktos nie cheatuje np. przez
brutalne zwiekrzenie sobie
statsow (jego statsy trzymane sa na wszystkich kompach w sesji, wiec jak
zmieni sie tylko u niego w pamieci,
bez wyslania po sieci odpowiedniego message'a to zostanie z sesji wykopany).
Ale nie wszystko da sie tym zalatwic, bo np, kolesie zmieniaja sobie w
pamieci pola odpowiedziale
za to ile expa dostana za zabicie jakiegos monstera, potem go zabijaja, i do
wszystkich w sieci leci komunikat
ze dostali 1000 expa (zamiast planowych 10), to tyle gwoli naswietlenia
sytuacji.
wiec jak zabezpieczyc proces przed tego typu machinacjami ??
jak robi to np. punk buster ?
dzieki za jakies informacje, artykuly, pomysly :)
--
savage