[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

Jak zabezpieczyc proces (win32

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


15 Answers

Jakub Debski

9/15/2007 8:44:00 AM

0

> Mam takie pytanie, jak zabezpieczyc proces (win32, konkretnie xp i wyzej)
> przed probami myfikacji jego pamieci przez inne procesy ?

nie da sie tego zrobia tak, aby by3o nie do obej?cia.
Jedynym rozwi?zaniem jest trzymanie wszystkiego po stronie serwera.

pozdrawiam
Jakub


Tomasz bla Fortuna

9/15/2007 8:47:00 AM

0

Dnia Sat, 15 Sep 2007 10:20:54 +0200
"Savage" <no@spam.thx> napisal(a):

> Czesc wszystkim.
>
> W skrocie:
> Mam takie pytanie, jak zabezpieczyc proces (win32, konkretnie xp i
> wyzej) przed probami myfikacji jego pamieci przez inne procesy ?
>
> Dluzej:
(ciach!)
>
> wiec jak zabezpieczyc proces przed tego typu machinacjami ??
> jak robi to np. punk buster ?
>
> dzieki za jakies informacje, artykuly, pomysly :)
>
Hm.
Wiele rzeczy mozna zrobic by gosciowi to utrudnic, ale absolutne
uniemozliwienie jest, no, nie wykonalne.

Trzymaj wszystkie istotne dane np. w jednym obszarze pamieci. Jakas
tablica, lista...i napisz funkcje które beda liczyly sume kontrolna
takich danych.

Jak wczasie gry przeliczysz ta sume co 2 minuty to powinno wystarczyc
na wykrycie jakis prostych machinacji.

Mozesz osobno trzymac dane 'stale', jak statsy potworów a zmieniajace
sie dynamicznie dane (ilosc zlota) trzymac w innym miejscu.
Miec przeliczona zawczasu sume statystyk i porónywac przy kazdym
starcie z ta wczytana do pamieci. Najlepiej zapisz ta sume w dwóch
miejscach... i w jednym zapisz ja np. od tylu...

Sumy musialbys trzymac najlepiej dosc porozrzucane w pamieci i liczone
wzglednie dobrym algorytmem (szybkim, moze byc maloznany...). Mozesz do
danych dorzucac losowo generowana 'sól' która zmieni sumy kontrolne,
ale w sumie nie wiem ile to da... ;)

Klasyczny przyklad security by obscurity.
Pozdrawiam.
--
Tomasz bla Fortuna
jid: bla(at)af.gliwice.pl
pgp: 0x90746E79 @ pgp.mit.edu
www: http://bl...

Krzysztof Rudnik

9/15/2007 9:38:00 AM

0

Savage wrote:

>
> wiec jak zabezpieczyc proces przed tego typu machinacjami ??
> jak robi to np. punk buster ?

Trudno zrobic tak, by user nie mial mozliwosci grzebania w swoim wlasnym
komputerze. Przeciez nie masz zadnej gwarancji ze tam dziala twoj
oryginalny program, a nie jakas zhackowana wersja albo wrecz zupelnie obcy
program udajacy oryginal. Muszisz po prostu w czasie projektowania calosci
zalozyc ze klienci sa niewiarygodni - tj podejmowac podstawowe decyzje na
serwerze. Oczywiscie sa pewne techniki weryfikacji (certyfikaty, SSL itp)
ale nie gwaratuja poprawnosci dziala klienta.

Krzysiek Rudnik

matmis

9/15/2007 11:32:00 AM

0

On 15 Wrz, 10:20, "Savage" <n...@spam.thx> wrote:
> 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.

generalnie, opr?cz (lub zamiast) wysy a do wszystkich innych
komunikaty o rezultacie akcji gracza, musisz wysy a komunikaty o
akcjach gracza (im bardziej na niskim poziomie abstrakcji, tym mniej
zysk?w z ich podrabiania) do niekt?rych z innych komputer?w. Na owych
komputerach jest replikowany stan gry tego gracza. Pozosta e komputery
w sieci, jak potrzebuj co z tego stanu gry, to raczej prosz o dane
komputery replikuj ce ni pierwotny, albo z obydwu r?de , i je
por?wnuj czy si zgadza. Serwer centralny zarz dza tym, kt?re
komputery s u jako replikatory dla kt?rego gracza.

To jeszcze nie rozwi zuje wszystkich problem?w z oszustwami graczy,
ale na jednego kretyna z soft icem powinno wystarczy , poszuka sobie
innej gry sieciowej do cheatowania.

Marcin Stefaniak

Norbert

9/17/2007 11:37:00 AM

0

Dnia Sat, 15 Sep 2007 04:31:31 -0700, matmis napisa3(a):

> jednego kretyna z soft icem

Zakladam sie o dowolna kwote, ze ten "kretyn" bije na leb swoim IQ
wszystkich innych graczy ;-)

pozdrawiam
Norbert

Pawel Kierski

9/17/2007 2:56:00 PM

0

Norbert w wiadomo?ci <fclosk$tm9$1@news.onet.pl> pisze:
> Dnia Sat, 15 Sep 2007 04:31:31 -0700, matmis napisa3(a):
>
> > jednego kretyna z soft icem
>
> Zakladam sie o dowolna kwote, ze ten "kretyn" bije na leb swoim IQ
> wszystkich innych graczy ;-)

A jak to strzelanka? 8-)

--
Pawe3 Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie je?li piszesz z domeny innej ni? .pl,
albo koniecznie chcesz obej?a moje filtry 8-)

Norbert

9/17/2007 5:26:00 PM

0

Dnia Mon, 17 Sep 2007 16:56:20 +0200, Pawe3 Kierski napisa3(a):

>> Zakladam sie o dowolna kwote, ze ten "kretyn" bije na leb swoim IQ
>> wszystkich innych graczy ;-)
>
> A jak to strzelanka? 8-)

A jakie to ma znaczenie? Chodzi wszak o to, ze jak koles rozwala
zabezpieczenie SoftIcem to sie z dupy nie urwal :-)

pozdrawiam
Norbert

Zbyszek Malec

9/17/2007 10:30:00 PM

0

Dnia Mon, 17 Sep 2007 19:25:36 +0200, Norbert napisa3(a):

> A jakie to ma znaczenie? Chodzi wszak o to, ze jak koles rozwala
> zabezpieczenie SoftIcem to sie z dupy nie urwal :-)

Ja osobi?cie uwa?am ?e mo?na bya cz3owiekiem inteligentnym a jednocze?nie
kretynem (tudzie? idiot?).

--
Zbyszek Malec Ustronie 104
jid: zbyszanna@jid.pl

radarek

9/18/2007 7:55:00 PM

0


"Norbert" <noreply@reply.no> wrote in message
news:fcmdag$o8n$1@news.onet.pl...
> Dnia Mon, 17 Sep 2007 16:56:20 +0200, Pawe³ Kierski napisa³(a):
> A jakie to ma znaczenie? Chodzi wszak o to, ze jak koles rozwala
> zabezpieczenie SoftIcem to sie z dupy nie urwal :-)
>

Przecie¿ nie ma ¿adnego zabezpieczenia :)


Adam Przybyla

9/19/2007 6:35:00 AM

0

Savage <no@spam.thx> wrote:
> Czesc wszystkim.
>
> W skrocie:
> Mam takie pytanie, jak zabezpieczyc proces (win32, konkretnie xp i wyzej)
> przed probami myfikacji jego pamieci przez inne procesy ?
... hmm, proste rozwiaznie: te wartosci nie moga byc w statycznych
zmiennych, np co jakis czas przepisuj je w przesuwanej tablicy ;-)
Albo rob na tych wartosciach XOR'a przed zapisem lub odczytem lub wartosci
niech sa zapisane w dwoch miejscach np. parzyste bity w jednym miejsscu
a nieparzyste w innym;-) Wszelkie kombinacje powyzszych metod tez sa mozliwe;-))
Z powazaniem
Adam Przybyla