Autor Wątek: Ochrona gry przed Cheat Engine  (Przeczytany 5785 razy)

Offline Mr.Protek

  • Użytkownik
    • Pogromcy Potworów

# Luty 13, 2010, 14:13:50
Tak jak w temacie, jak najlepiej to zrobić? Mam już pewien pomysł ale może ktoś ma lepszy ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ConayR

  • Użytkownik

# Luty 13, 2010, 14:19:37
Obama is Asian - discuss!

Mniej więcej tak widzę ten temat. :)

Offline Mannelig

  • Użytkownik

# Luty 13, 2010, 14:28:53
Czy ja wiem czy ma sens się w to bawić, jak gracz będzie chciał oszukać to zawsze znajdzie sposób, w każdej grze znajdą się jakieś triki, których nie uwzglednili twórcy.

Offline Mr.Protek

  • Użytkownik
    • Pogromcy Potworów

# Luty 13, 2010, 14:43:17
Ja jestem tego świadom, ale ochrona przed takimi najprostszymi sztuczkami nie zaszkodzi chyba? :D

Offline Dab

  • Redaktor
    • blog

# Luty 13, 2010, 14:49:48
Nie wiem jak dokładnie ten Cheat Engine działa ale możesz zrobić 2 rzeczy:
a) zabezpieczyć się przed podłączeniem debuggera tudzież wykrywać jego obecność
b) nie trzymać ważnych danych w prostej postaci: na przykład mając int[3]: {HP, mana, kasa} trzymaj dodatkowo ich jakiś hash czy sumę kontrolną
c) uzależniaj ich wartości od innych zmiennych (np. od czasu czy położenia) żeby zapobiec ich zamrożeniu

Przed hack-kiddies pomoże.

Offline ANtY

  • With fury and fire
  • Użytkownik
    • ANtY

  • Zbanowany
# Luty 13, 2010, 14:52:34
Ale po co to, gra ma sprawiać graczowi przyjemność, jak będzie się cieszył, że ma 100 siły to co tobie za różnica.

Offline Byamarro

  • Użytkownik
    • PSGM

# Luty 13, 2010, 14:53:16
Cheat Engine pierwotnie był zwykłym Memory Editorem.
Ale teraz dodano do niego Pointer Scany, Disssassemblery a nawet packet editor'a...

Offline Mr.Protek

  • Użytkownik
    • Pogromcy Potworów

# Luty 13, 2010, 15:13:50
Ale po co to, gra ma sprawiać graczowi przyjemność, jak będzie się cieszył, że ma 100 siły to co tobie za różnica.
Przypuśćmy że gra oferuję możliwość wspólnej gry przez sieć, wydaje mnie się że gra z oszustami nigdy nie jest miła :D

b) nie trzymać ważnych danych w prostej postaci: na przykład mając int[3]: {HP, mana, kasa} trzymaj dodatkowo ich jakiś hash czy sumę kontrolną
No właśnie pomyślałem o czymś podobnym :)
« Ostatnia zmiana: Luty 13, 2010, 15:15:47 wysłana przez Mr.Protek »

Offline Byamarro

  • Użytkownik
    • PSGM

# Luty 13, 2010, 15:15:41
Dane graczy niech będą zapisywane na serwerze a nie na komputerze graczy. I już 80% hacków na CE pada ;)

Offline DoS

  • Użytkownik
    • Projekt ORC

# Luty 13, 2010, 15:19:45
Moim zdaniem zbyt dużo roboty w porównaniu do efektów pracy. "Hakjerzy" byli, są oraz będą i nie spoczną dopóki, dopóty nie będą widzieć przez ściany, mieć 10k golda itd.
Ja bym proponował zrobić panel ze statami graczy dla MG, który w jakiejś tabelce przedstawiałby procentowy przyrost jakiejś umiejętności, statystyk, cokolwiek można zhakować, i sortował w kolejności rosnącej. Uwzględnić tam jakiś przedział, do który mógłby uzyskać przeciętny gracz po x czasie. Jak widzisz że komuś w jeden dzień 20x razy za dużo przybyło expa jak na jego lvl to banem go.

Offline Mr.Protek

  • Użytkownik
    • Pogromcy Potworów

# Luty 13, 2010, 15:21:16
Jak pewnie nie trudno się domyśleć chodzi mi o moją grę PP, niestety tam pliki postaci są zapisane na komputerze gracza, ale są zaszyfrowane, teraz właśnie myślę jak zabezpieczyć grę od strony bebechów ;D
« Ostatnia zmiana: Luty 13, 2010, 15:22:59 wysłana przez Mr.Protek »

Offline Byamarro

  • Użytkownik
    • PSGM

# Luty 13, 2010, 15:24:11
Sam jestem cheaterem (po prostu gry mi się szybko nudzą, nie że nie umiem przechodzić czy coś. Ale czasami fajnie polatać albo skakać do nieba ;P)
Zaszyfrowane pliki z danymi nic nie dadzą. Nawet jeśli to twój własny szyfr.

Offline Minus

  • Użytkownik

# Luty 13, 2010, 15:28:34
CE można oszukać dość prostym trikem.
InCode> int hp = 100*(128);
OnDisplay> drawCostam( toString( hp/(128) ), ... );
Jest to oczywiście najprostsze z możliwych rozwiązań ;p

Offline Dab

  • Redaktor
    • blog

# Luty 13, 2010, 15:30:52
Przypuśćmy że gra oferuję możliwość wspólnej gry przez sieć, wydaje mnie się że gra z oszustami nigdy nie jest miła :D

Po lanie to akurat mały problem, zawsze można przejść się pokój/piętro i walnąć łopatą po głowie. :P

Cytuj
No właśnie pomyślałem o czymś podobnym

No to weź jeszcze pod uwagę C, bo w przeciwnym razie po prostu gracz zamrozi cały blok związany z np. atrybutami i dupa. Przynajmniej ja tak robiłem zawsze grając w SNESowe gierki :D

Offline Byamarro

  • Użytkownik
    • PSGM

# Luty 13, 2010, 15:35:26
Cytuj
InCode> int hp = 100*(128);
OnDisplay> drawCostam( toString( hp/(128) ), ... );

Dobry Cheater zastosuje Unknown Initial Value. I takie coś nie pomoże.
Można nawet wysokość w grach 3D w ten sposób wydobyć.