Obecnie istnieje wiele programów zmieniających pamięć ( Cheat Engine & co). Czy istnieje skuteczny sposób, aby utrzymać stałą zmienną faktycznie stałą?
Miałem dwa pomysły:
- Utwórz osobny wątek aktualizując zmienną stałą do stałej wartości, np. 200 co minutę. Problem: Można również zmienić drugą wartość.
- Zapisz wartość na serwerze. Problem: Chcę utrzymać ruch sieciowy na jak najniższym poziomie.
Potrzebuję tego mechanizmu zarówno dla stałych, jak i zmiennych, które mogą zawierać tylko pewien zakres wartości.
Czy są lepsze sposoby na to?
anti-cheat
Michał
źródło
źródło
Odpowiedzi:
Jeśli twoja gra jest dla jednego gracza : nie jest to możliwe, ale nie powinieneś się tym przejmować .
Jeśli grasz w trybie wieloosobowym: powinieneś zapisać cały swój ważny stan na serwerze, który jest o wiele trudniejszy do zhakowania niż komputer lokalny.
źródło
x
szkodęy
”.Nie można tego zrobić , https://security.stackexchange.com/a/4639 dotyczy DRM, ale to samo dotyczy wszystkiego, czego użytkownik nie chce na swoim komputerze, w tym mechanizmów Anti-Cheat. (Które ma tendencję do bycia jeszcze trudniejszym do zrobienia niż DRM.)
Ale dlaczego tak naprawdę dlaczego? To twój komputer klienta, a nie twój, klient robi ze swoim komputerem, co zechce z tym zrobić. Nie masz do tego żadnych praw. Twój program zostanie usunięty, jeśli klientowi się to nie spodoba.
W przypadku gier wieloosobowych nie chodzi o zaprojektowanie uruchomionego pliku binarnego, ale o zaprojektowanie komunikacji. Pozwalanie użytkownikom po prostu wysłać „Wygrałem z 20000 punktami” nie działa, podobnie jak „Mam 2000 złota” . Musisz sam zasymulować grę i po prostu pozwolić graczom wysłać to, co robią, na przykład „Rozkazałem żołnierzowi przenieść się do punktu X / Y” lub „Kupiłem przedmiot nr 43” , a nie wynik tego działania są. Serwer decyduje, jakie są wyniki i kto ostatecznie wygrał.
Jeśli jest to gra dla pojedynczego gracza z najlepszym wynikiem online, opcją byłoby wysłanie przez gracza powtórki, jej zasymulowanie i wybranie z tego wyniku.
źródło
Pierwszy nie jest skuteczny i nie powstrzyma żadnej zdeterminowanej osoby przed atakiem twojej gry - a także jest podatny na błędy. Możesz jednak uczynić to o wiele trudniejszym , a nie pełnym dowodem , jeśli chcesz. Niektóre popularne strategie są dostępne w Internecie, ale jak wspomnieli inni ludzie - musisz zadać sobie pytanie, czy warto.
Dla uzasadnienia, oto kilka sposobów, aby zapobiec hakowaniu w środowisku dla jednego gracza:
Alternatywą jest oczywiście przechowywanie wszystkiego na serwerze i stworzenie serwera gry, który jest mistrzem. Jest to nie tylko drogie, wymaga konserwacji i wydłuża czas programowania ... fani nie są pod wrażeniem wdrażania popularnych gier, takich jak Diablo III . Lub tu. Należy jednak zauważyć, że w przypadku gry online typu RPG typu flash Adventure, takiej jak Adventure Quest, ten model działał jednak całkiem nieźle.
Nie mogę podać wielu wskazówek, jak wdrożyć tego rodzaju podejście, ponieważ jest ono bardzo szerokie, szerokie i wymaga dużo planowania. Podstawą do poznania jest to, że serwer decyduje o wszystkim, a klient jest jedynie konsolą wejściową i wyświetlającą.
źródło
Wiele osób używa tych programów do wyszukiwania partytury zapisanej w zmiennej np
aby to zrobić, muszą znać wynik, zwykle z wyniku wyświetlanego w grze.
Myślałem, czy to pomogłoby ich odłożyć ...
wtedy gdy chcesz wyświetlić wynik, wykonaj ...
to sprawi, że oszustowie będą szukać tego, co według nich jest wynikiem (wynik jest wyświetlany), więc znajdą tylko wyświetloną wartość.
Rzeczywisty wynik to Wynik * randomVal przechowywany gdzie indziej. Nie mogą zmienić wyniku poprzez zmianę wyświetlanej wartości.
czy to pomogłoby?
ps Nie jestem ekspertem, więc wyluzuj mi lol.
źródło
Jeśli chodzi o gry dla pojedynczego gracza , nie można zapobiec oszustwom i nie należy .
Dlaczego nie mogę zapobiec oszukiwaniu we własnej grze?
Jak wskazały inne odpowiedzi, nawet najlepsze wysiłki mogłyby zostać omijane przez jednego hakera i przekazane reszcie bazy graczy. Nadal można zrobić wysiłek przeciwko temu, ale spojrzeć na inne odpowiedzi na sugestie how . Ta odpowiedź oznacza zaoszczędzenie kłopotów, jeśli gra ma na celu zapewnienie rozgrywki dla jednego gracza.
Dlaczego powinienem pozwolić graczom oszukiwać w grze dla jednego gracza?
Cytując Sama ,
To całkowicie mija się z celem . Gry są formą rozrywki . Ogólnie rzecz biorąc, twoja baza graczy gra w Twoją grę, aby się dobrze bawić . Jeśli gracz używa cheatów w grze, istnieje powód, dla którego używa cheatów. Można bezpiecznie założyć, że nie możemy zagwarantować definicji zabawy dla każdego gracza; jeśli używają kodów , być może jest to ich sposób na zwiększenie przyjemności z gry.
W jaki sposób oszustwo sprawia, że gra jest przyjemniejsza?
Chociaż każda osoba jest wyjątkowa, istnieje kilka warunków, w których kody mogą sprawić, że gra będzie bardziej zabawna, z góry mojej głowy:
Dlaczego dotyczy to wyłącznie gier dla jednego gracza?
Należy podkreślić, że działa to tylko w grach dla jednego gracza ; jeśli gracz powie Ci, że chce używać kodów, aby mieć więcej zabawy w swojej grze, nie szkodzi. Gdy tylko w grze jest wielu graczy, wyczyny tego pierwszego gracza mogą stać się niesprawiedliwą wadą dla innych graczy. Jest to jedyna prawdziwa sytuacja, w której nie należy dopuszczać oszukiwania.
źródło
Do czego służy narzędzie hakowania pamięci?
Istnieją dwa sposoby obsługi narzędzia hakerskiego.
Co możesz z tym zrobić?
Możesz używać dynamicznie alokowanych zmiennych do przechowywania zmiennych odtwarzacza, aby adres ciągle się zmieniał podczas uruchamiania. Nie będzie żadnego stałego adresu, który witryna z kodami do wyświetlenia mogłaby wymienić.
Zaszyfruj zmienne odtwarzacza: skalowanie wartości, dodawanie stałej itp. Daje to nowy problem: zapalony haker może zdemontować twój program i znaleźć liczby, których używasz do szyfrowania zmiennych odtwarzacza. W tym celu użyj liczb losowych. Możesz także przeskalować wartości zmiennych odtwarzacza, a następnie dodać liczbę losową, tak aby dodana liczba nie zmieniała w znaczący sposób wartości (dodanie 10 lub 20 do skalowanej wartości 2000 nie robi dużej różnicy).
Oczywiście niektórzy poważni hakerzy wciąż mogą znaleźć sposoby na pokonanie tych przeszkód, ale nie będzie to łatwe.
Chociaż powyższy kod rozwiązuje kilka poważnych problemów, wciąż można go zgarnąć. Jedyną informacją, której potrzebuje haker, jest: dostęp do zmiennych gracza uzyskuje się za pomocą wskaźnika (mógł się również dowiedzieć poprzez dezasemblację gry, ale będzie to denerwujące i trudne). Gdy haker będzie miał adres do zmiennych gracza wraz z innymi tajnymi zmiennymi losowymi, będzie dla niego łatwym zadaniem opracowanie kodu.
Moim zdaniem bez demontażu nie można tak naprawdę napisać narzędzia hakerskiego dla takiego systemu. Wynik jest nieprzewidywalny, ponieważ będziesz dodawał losową liczbę do zmiennych gracza przy każdej modyfikacji. Zakres, w którym przechowywane są zmienne odtwarzacza, nie jest taki sam przy każdym uruchomieniu.
Co jeszcze możesz zrobić?
Od czasu do czasu zmieniaj adres zmiennych odtwarzacza. Czy to utrudnia czytelność kodu? Cóż, do pewnego stopnia, ale można wyodrębnić cały proces w jednej klasie, która ma dobrze wyjaśnione komentarze. Interfejs zapewniony przez klasę będzie miał proste funkcje Set / Get. Programista frontonu nie musiałby martwić się o złożoność.
źródło
Ekonomia:
Jeśli chcesz wzmocnić swoją grę przed oszustami, najlepszym sposobem jest zakup oprogramowania, które to zrobi za Ciebie. Istnieje kilku dostawców, a można znaleźć wielu z nich, przeglądając hasło „anti cheat psuje moją grę” .
Specjaliści są znacznie lepsi w zapobieganiu oszustwom niż ty i znacznie lepszym w nie przerywaniu gry niż ty (i nadal nie odnoszą sukcesu w 100% w żadnym z tych przypadków). Jeśli więc uważasz, że warto wprowadzić takie rozwiązanie w swojej grze, kup je. Robienie własnego będzie znacznie droższe.
Powiązane pytanie brzmi: „czy warto korzystać z oprogramowania do oszukiwania?”. Odpowiedź brzmi: nie, chyba że przyzwoita część gry opiera się na trybie rywalizacji online.
źródło
Jedynym sposobem na ochronę gry przed modyfikowaniem i edycją pamięci jest przejście do trybu ONLINE i przetwarzanie istotnych wartości po stronie serwera .
Być może możesz zaszyfrować wartości, aby edoity pamięci dla początkujących nie dotarły do nich, ale wszystkie społeczności, takie jak Cheat Engine , GameGuarian dla Androida, ArtMoney, Game Hacker ect mają ludzi, którzy będą w stanie zhakować wszystko, co przetwarzasz - i pokaż innym, jak to zrobić lub opublikuj trenerów.
Moim zdaniem jest to bezcelowe staranie się odstraszyć oszustów. Również nie do końca uczciwe, ponieważ jest to ich urządzenie, a jeśli chcą w pamięci edytować rzeczy dziejące się na ich urządzeniu, dlaczego mielibyście je utrudniać? Ostatecznie klient jest królem.
źródło
Mam na myśli, że to nie takie trudne. Możesz zatrzymać 99% oszustów edycyjnych w pamięci (ci Game Guardian , Cheat Engine ect na dystans, po prostu mnożąc wartości. Nawet pomnożenie przez 10 w pamięci powstrzyma większość z nich.
Pamiętam, że wiele gier flash w ciągu dnia pomnożyłoby się przez 8 lub 6. Lub jeśli naprawdę mówisz o tym poważnie, napisz kilka kontroli lub zaszyfruj wartości w pamięci.
źródło
Nie możesz - powtarzam, że nie możesz. Nie ma odpowiedzi na to pytanie, której dobry haker nie może cofnąć.
No i co z tego? Jeśli ktoś chce oszukiwać w twojej grze (zakładając, że nie wiąże się to z utratą lub osiągnięciem pieniężnym), kogo to obchodzi? Oszukują tylko siebie.
Poświęć więcej czasu na stworzenie świetnej gry, a mniej na zapobieganie psucia się własnej zabawy - proste.
źródło
Zaszyfruj to! Przechowuj ważne liczby podzielone w wielu lokalizacjach w połączeniu z innymi wartościami, aby stale się zmieniały! Użyj fałszywych numerów, które, jeśli zostaną zmienione, powiedzą im, że są oszustami.
Wszystko można złamać, ale większość nie poświęci na to czasu.
źródło
Sposób, w jaki sobie z tym radzę w grach online, jest taki.
Nie pomogę hakerom tak bardzo mnie znosić. Nie wspomnę o żadnych programach, których używam do tego. Musisz to rozgryźć. Jedynym sposobem, aby naprawdę ich powstrzymać, jest poznanie jednej rzeczy. Nie chcą, aby ich program hakerski został wykryty.
Do tej pory wszyscy użytkownicy hakerów / trenerów, których pokonałem. Twórca hacka umieści na nim detektor, aby sprawdzić, czy coś ogląda. Jeśli coś jest, to program hakera / trenera albo zamknie się automatycznie po ich zakończeniu, albo będzie działał tylko w połowie.
Na przykład w grze dirt 3 użytkownicy trenerów mogą automatycznie uruchomić samochód. Ale jeśli umieścisz wykrywacz na swoim końcu, wykrywacz wykryje go i zamknie część oszustwa. Nie wszystko z tego.
Jedyną częścią programu trenera, który widziałem w wyniku mojego wtrącania się, są super hamulce (idealne hamowanie) i spinout (utrata kontroli nad samochodem bez powodu). Jak widać, mam głównie gry wyścigowe. Wszystkie pochodzą od twórców kodu i niestety te gry są często wykorzystywane przez oszustów.
Wierzę, że jestem w stanie ich powstrzymać tylko ze względu na sposób, w jaki łączymy się ze sobą podczas gry. Jest to prawdopodobnie ten sam powód, dla którego mogliby spowodować ubytek normalnego gracza, który nie ma pojęcia o bezpieczeństwie.
Moją największą sugestią jest uzyskanie bardzo dobrego programu antywirusowego do zabezpieczania Internetu (Norton, Mcafee, Avast i wszystkie inne gówniane programy antywirusowe ci nie pomogą). Bądź gotów wydać od 50 do 90 USD na bardzo dobry av, którego nie wymieniłem, a następnie naucz się eksperymentować z nim, aby uzyskać efekt w grze online.
To wymaga dużo cierpliwości i wielu świnek morskich. Odniosłem z tym duży sukces, ale także wieloletnie doświadczenie w kontaktach z użytkownikami trenerów. Nie znam żadnego kodu. To nie ma z tym nic wspólnego. Część kodu jest zablokowana i nie można nic z tym zrobić. Można by pomyśleć, że możesz, ale po prostu nie można tak naprawdę zatrzymać tego, co robią.
Nadal możesz je banować za pomocą VAC, ponieważ Vac wykrywa podpisy i pewne zachowania oraz modyfikacje plików, o których już wie. Zakazuje tylko konta związanego z oszustwem.
Ale tak naprawdę nie zatrzymują oszustwa. Nie mogą się tym przejmować. Po prostu zbanowali twoje konto. Inna rzecz, o której chciałbym wspomnieć, dotyczy Wolfenstein ET. Bardzo stara gra. Ale dla mnie miał najlepszy i najostrzejszy ze wszystkich środków bezpieczeństwa.
Nigdy nie widziałem, jak to zrobili. Dałem im pomysł na to, co faktycznie powstrzymałoby oszustów i zasugerowałem jednemu z devoloperów jaymod, aby zakazał prowadzenia przez guid. Co ma łatwo dostępny przewodnik podczas grania w gry? Karty graficzne. Zaimplementowali to dlatego, że ludzie po prostu zmieniają adresy IP, a ty nie potrzebujesz konta do gry, więc możesz po prostu zmienić swoje imię i nazwisko, adres mac, który również zmieni adres IP.
Ale kiedy popełnili zakazy karty graficznej. Jeśli chcesz zagrać jeszcze raz, musisz otrzymać kartę RMA lub kupić nową. Ale to nie temat. To ma być o wykrywaniu, a ja poszedłem na styczną. Niestety nie gram teraz prawie tak często. Ale człowieku kochałem wszystkie moje świnki morskie. Zwłaszcza te z samochodów projektowych. Jedyna gra wyścigowa, która nie była kodemasterami. Ale wciąż wywoływane przez ten sam nonsens.
źródło