Skocz do zawartości

Memory Protection System v0.1


Rekomendowane odpowiedzi

Zainspirowany "czymś" Michałka dotyczącego pseudo-szyfrowania tekstu (a przy okazji jego poprzednim tematem, w którym pytał właśnie o to) postanowiłem se napisać jakiś prosty system zabezpieczenia zasobów gry (np. zmienne z punktami, bądź chociażby prędkość ataku/chodzenia w Almorze) przed zmianą za pomocą MHSa/Cheat Engine'a, czy czego tam używasz do takich "zabaw".

 

Skrypcik wykorzystuje XORa do zabezpieczenia zasobów gry.

 

DOWNLOAD v0.1

 

Mimo, iż "mps" jest baaardzo prosty - jest wcale nie taki łatwy do złamania, a na pewno zabezpieczy przed przeciętnym dzieckiem neo które nauczyło się używać Cheat Engine'a z filmików na YouTube.

 

Obsługi opisywać chyba nie muszę - myślę, że pseudo-przykład wszystko wyjaśnia.

 

Ogólny sposób jest taki - rzeczywista zmienna jest zakodowana, odkodowujemy/zakodowujemy ją za pomocą funkcji mps_real/string().

Dzięki temu w pamięci przechowujemy jedynie zakodowaną wartość.

 

No... to będzie na tyle.

 

Dla porównania - zrób to tak:

1. Uruchom plik no_mps.exe - jest to niezabezpieczona wersja przykładu.

2. Uruchom MHS/Cheat Engine (bądź inny programik do zmiany zasobów...), spróbuj zmienić ilość punktów/wyświetlany tekst (nie powinieneś mieć z tym problemu, punkty powinny dać radę się bez problemu zmienić - jeśli nie, tzn. że robisz coś źle... ;p)

3. Zamknij przykład. Włącz zabezpieczoną wersję - mps.exe.

4. Spróbuj teraz zmienić ilośc punktów.

5. Jeśli nie jesteś pr0-h4x0rem - nie powinna Ci się udać zmiana ilości punktów.

Jeśli dałeś radę - nie, nie możesz być z siebie dumny... ;P

 

Żeby nie było - ostrzegam, że i to da się dość łatwo zmienić... ;x

 

Jednak cóż - zastosowanie tego skrypciku nie powinni nikomu sprawić rpoblemu ani nie wiem jak skomplikować kodu gry - a przed przeciętnym userem zabezpiecza :)

 

Ed: Czemu da się oceniać własne tematy ;x ?

Kiedyś się (chyba) nie dało...

Odnośnik do komentarza
Udostępnij na innych stronach

To jest tak, znam obecną ilość punktów, a wiem też, że jeśli wartość 10 przepuszczę przez xor to otrzymam maksymalnie 255 i minimalnie 0 tak więc szukam wartości z tego przedziału. Później zwiększam wartość punktacji o N i strzelam, czy wartość w pamięci się zwiększyła czy zmniejszyła o N. Przy odrobinie szczęścia od razu trafię na wartość zmiennej w pamięci. Wyliczenie klucza znając wartość zmiennej w pamięci i podanej na ekranie to chyba nie problem, nie? Znając klucz robię sobie co chcę. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm... tak teraz na luzie usiadłem, i muszę powiedzieć, że to przyjemna (a na pewno satysfakcjonująca... ^_^ ) zabawa :D

 

Ale rzeczywiście, kompletnie nie pomyślałem o tym, że jak ktoś pozna klucz to będzie po zabawie... ;P

 

Teraz tylko myślę, co by z tym zrobić.

Myślałem nad użyciem zamiast pojedynczego klucza całego stringu, chociaż... to też dało by radę odzyskać.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
Jest jedna słuszna teoria: "Każde zabezpieczenie idzie złamać".

 

Dokładnie. Co innego np. MD5, gdzie nic nie odkodujesz, chociaz istnieją dwa takie same hashe z różnych tekstów... tylko nie tak prosto je znaleźć i nieco to potrwa.

Odnośnik do komentarza
Udostępnij na innych stronach

@UP: to sie nie nadaje, a to dla tego ze MD5 sie za dlugo generuje i wazy wiecej niz double.

Odnośnik do komentarza
Udostępnij na innych stronach

Eee:

Czyli Tymon obalił teorie która mówi, że ten ktoś nie odczyta/zmieni wartości.
->
Żeby nie było - ostrzegam, że i to da się dość łatwo zmienić... ;x
5. Jeśli nie jesteś pr0-h4x0rem - nie powinna Ci się udać zmiana ilości punktów. Jeśli dałeś radę - nie, nie możesz być z siebie dumny... ;P
Mimo, iż "mps" jest baaardzo prosty - jest wcale nie taki łatwy do złamania
No tu akurat się pomyliłem :P

 

Wiedziałem, że da radę to złamać, ale nie pomyślałem, że ktoś może se klucz ukraść... :P

 

Rozbudowywać tu nic chyba nie ma sensu.

Ewentualnie...

 

A co, jakbym na starcie gry stworzył 2 jednobajtowe klucze (no, dwuznakowy string), i kodował zmienną - najpierw pierwszym, później drugim :P ?

 

Było by to zaledwie 2x wolniejsze (czyli niewiele), a już być se tak łatwo klucza nie odzyskał... :)

Odnośnik do komentarza
Udostępnij na innych stronach

Skrypcik wykorzystuje XORa do zabezpieczenia zasobów gry.

największym błędem kryptografa jest wyjawienie jakiego szyfru użył... Gdybyś nie powiedział, tymon pewnie by go nie złamał tak szybko ;p no chyba, że by szedł po najcięższej linii oporu tzn. by strzelał.

Odnośnik do komentarza
Udostępnij na innych stronach

nie, to beznadziejny pomysł. zdaj sobie sprawę jaką strukturę ma double czyli GMowy real - gdy przy operacjach liczbowych wyjdziesz poza zasieg (granice wartosci) to przy odwrotnej operacji nie uzyskasz tej samej wartosci (mimo iz to rzadkosc) - tak sie nie robi.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...