Jak gry na PC / Mac wykrywają piractwo?

27

Niedawno czytałem artykuł o sprytnych sposobach, w jakie programiści chronili swoje gry przed piratami, na przykład twórcy Game Dev Tycoon . To mnie zainteresowało: jak wykrywają, że kopia uruchomionej gry jest w rzeczywistości piracką wersją na poziomie technicznym? Najbliższą odpowiedzią, jaką udało mi się znaleźć w niektórych badaniach, było to, w jaki sposób kartridże SNES mogą wykryć, czy są pirackie , ale ta taktyka oczywiście nie dotyczy komputerów PC.

caseif
źródło
1
Myślę, że to pytanie jest zbyt ogólne. Istnieje wiele sposobów wykrywania piractwa przez gry, a wiele z nich jest specyficznych dla każdej gry.
MichaelHouse
10
@ Byte56 Zgadzam się, że pytanie jest dość ogólne, ale myślę, że nadal jest to dobre pytanie. Idealna odpowiedź może stanowić wspólną metodę wykrywania piractwa i być może linki do źródeł wyjaśniających inne znane rozwiązania.
kevintodisco
2
Prawdopodobnie najlepszym sposobem na uniknięcie piractwa jest zrobienie tego, co Blizzard zrobił dla Diablo III: klient wykonuje renderowanie, ale większość zasad i logiki gry jest przechowywana tylko po stronie serwerów Blizzarda (np. Ile złota otrzymujesz, gdy otwierasz skrzynię w pokoju X z graczem na poziomie Y). Nie da się tego pokonać, chyba że ukradłeś pliki binarne / źródło Blizzarda dla części serwerowej (co jest bardzo mało prawdopodobne). Niektóre osoby stworzyły emulatory, ale ponieważ nie są to te same zasady (są one przybliżeniami), w ogóle nie daje takich samych wrażeń z gry.
tigrou

Odpowiedzi:

53

Po pierwsze: komputer nie może wiedzieć, czy plik jest piracki czy nie. Piractwo jest terminem prawnym / moralnym i dlatego nie ma znaczenia dla pliku, który składa się tylko z zer i jedynek.

To powiedziawszy, zapobieganie piractwu i środki zaradcze zwykle koncentrują się na ustaleniu, czy użytkownik ma coś (zwykle przedmiot), który można uzyskać tylko wtedy, gdy zakupiono kopię gry, i utrudnia to powielenie. Istnieje wiele sposobów na zrobienie tego, każdy z zaletami i wadami. Wspomnę o kilku:

  • Wczesne gry prosiły użytkowników o wpisanie słowa z instrukcji gry, które powinieneś dostać tylko wtedy, gdy kupiłeś pudełko do gry. Jednak kserokopiarka lub skaner z łatwością pokonuje tę technikę.

  • Ostatnio kontrole mediów są częstsze. Chodzi o to, że do uruchomienia gry potrzebujesz dysku CD z grą. Aby to zaimplementować, możesz na przykład uzyskać dostęp do krytycznych plików danych z dysku CD, bez którego gra nie może zostać uruchomiona, lub po prostu sprawdzić, czy plik znajduje się na dysku CD. Działało to całkiem dobrze, gdy trudno było powielić dyski CD, ale kopiarki CD, a ostatnio emulatory napędu mogą być łatwo użyte do pokonania tej techniki.

  • Jednak kopie płyt CD nie są idealne, dlatego wiele innych technik koncentruje się na wykrywaniu, czy płyta CD jest oryginalnie tłoczoną płytą CD, czy też kopią. Aby to zaimplementować, gra może sprawdzić niestandardowe elementy, które są wkładane na dysk z grą podczas prasowania, ale nie można ich łatwo i niezawodnie odtworzyć za pomocą nagrywarki CD na płycie CD-R. Oto niektóre typowe sposoby:

    • Tworzenie fałszywych plików „duchów” na płycie CD podczas masteringu, które nie są dostępne z systemu plików CD, ale istnieją i można je odczytać, jeśli wiesz, gdzie je znaleźć. Te dane są nieobecne na kopiach płyt po pliku. Skopiowanie całego obrazu dysku spowoduje jednak skopiowanie tych plików.

    • Innym sposobem jest celowe wstawianie błędów na dysku. Płyty CD zawierają kody korekcji błędów. Po wstawieniu błędów w danych, które można w przejrzysty sposób poprawić za pomocą czytnika dysków, dysk będzie działał normalnie, ale błędy nie zostaną skopiowane na dysk CD-R. Szukając tych umyślnych błędów, gra może uznać płytę CD za oryginalnie wydrukowaną kopię. Kopie obrazów płyt RAW to jednak pokonują.

    • Wstawienie bliźniaczych sektorów o tym samym adresie, ale różnych danych, przyniesie różne wyniki podczas wyszukiwania danych do przodu i do tyłu. Sprawdzanie tego jest możliwe, a powielanie płyt CD z tymi bliźniaczymi sektorami jest bardzo trudne.

    • Mierzenie rzeczywistej pozycji wgłębień na płycie CD. Ponownie powielenie płyty CD z dołami w tych samych pozycjach jest bardzo trudne.

    Jednak wiele emulatorów CD, takich jak Daemon Tools lub Alcohol 120%, może w rzeczywistości emulować te funkcje. Z tego powodu wielu wydawców decyduje się na krok wykrywania emulatora CD i zapobiega uruchomieniu gry w przypadku wykrycia emulatora. Implementacja detektora emulatora jest jednak poza zakresem tej odpowiedzi.

  • Zamiast lub w celu sprawdzenia fizycznej płyty CD, gra może poprosić użytkownika o wprowadzenie danych, takich jak klucz produktu . Niektóre sposoby używania kluczy produktu to:

    • Sprawdzanie cech matematycznych w kluczu. Jednak nie zapobiega to duplikowaniu kluczy, a jeśli algorytm sprawdzający zostanie wykryty lub poddany inżynierii wstecznej, pirat może być w stanie tworzyć nowe klucze do woli, które wydają się być uzasadnione w grze. Oprogramowanie, które tworzy klucze do woli, nazywa się „ keygens ”.

    • Generując skrót na podstawie sprzętu użytkownika, wyślij ten skrót i klucz produktu (zwykle kombinację, zwaną „kluczem instalacyjnym”) na serwer będący własnością firmy, a na podstawie skrótu i ​​numeru seryjnego utwórz klucz aktywacyjny . Korzystając z jednokierunkowych metod numerycznych (takich jak arytmetyka modularna lub niektóre metody z krzywymi eliptycznymi), gra może sprawdzić, czy klucz aktywacyjny jest zgodny z hash i kodem seryjnym i działa tylko wtedy, gdy są zgodne. Ta technika nazywa się „aktywacją”.

    W przypadku aktywacji serwer może odmówić podania kluczy aktywacyjnych dla wielu skrótów sprzętowych z tym samym kodem szeregowym. Z tego powodu nawet po skopiowaniu kodu seryjnego i klucza aktywacyjnego klucz aktywacyjny nie będzie pasował, a gra nie będzie działać na innych komputerach.

Wszystkie te środki mają na celu sprawdzenie, czy użytkownik posiada zakupioną kopię gry. Jednak ich wdrożenie wymaga kodu programu, który to sprawdza. Pirat może zmodyfikować kod gry, aby wyłączyć lub ominąć kontrole zamiast atakować same mechanizmy ochrony przed kopiowaniem. Modyfikacja plików binarnych gry w celu usunięcia kontroli antypirackich nazywa się „crackingiem”.

Pękanie może polegać po prostu na demontażu pliku wykonywalnego gry, znalezieniu miejsca, w którym przeprowadzane są odpowiednie kontrole, zmodyfikowaniu go w celu wyłączenia kontroli lub zignorowaniu wyników i ponownym złożeniu. Niektóre sposoby przeciwdziałania pękaniu to:

  • Sprawdzanie pliku binarnego za pomocą skrótu. Musi jednak istnieć program sprawdzający skrót, który z kolei może zostać złamany.

  • Szyfrowanie programu lub po prostu procedura sprawdzania i deszyfrowanie go w czasie wykonywania. Utrudnia to demontaż, ponieważ wymaga jednego lub więcej dodatkowych kroków deszyfrowania. JEŻELI klucz deszyfrowania jest zawarty w programie (tak musi być, ponieważ bez niego gra nie może zostać odszyfrowana), pirat może odwrócić inżynier deszyfrowania, znaleźć procedurę i złamać ochronę przed kopiowaniem.

    Z tego powodu, jako wydawca gry, chcesz uczynić klucz tak trudnym do znalezienia, jak to możliwe, i opcjonalnie utrudnić zrozumienie algorytmu deszyfrowania. Niektóre sposoby utrudniania znalezienia klucza to:

    • Zasłonić go, tworząc go w dziwny sposób. To po prostu spowalnia proces pękania.

    • Utwórz klucze główne na maszynę podobne do wspomnianej powyżej ochrony szeregowej.

    Jednak niezależnie od metody użytej do utworzenia kluczy, same klucze będą przechowywane w pamięci podczas trwania odszyfrowywania. Inspektorzy pamięci, debuggery i emulatory mogą pomóc piratowi znaleźć i skopiować klucz, gdy jest on w pamięci. Podglądanie pamięci można atakować na kilka sposobów:

    • Posiadanie uprzywilejowanej usługi, która wykrywa dostęp do pamięci w określonym regionie i przekierowuje adresowanie gdzie indziej. Ponieważ wymaga to dostępu pierścienia 0, a programy, które to robią, są częściej używane do niezbyt uzasadnionych celów , oprogramowanie antywirusowe zwykle je blokuje. (dlatego wiele gier i innego oprogramowania prosi o wyłączenie ochrony przed wirusami podczas działania). Pisanie oprogramowania, które poprawnie to robi, jest niezwykle trudne i może łatwo zagrozić stabilności i bezpieczeństwu systemu operacyjnego hosta. XCP skandal jest dobrym przykładem realizacji tej metody popsuło.

    • Nowoczesny sprzęt i systemy operacyjne zapewniają niektóre narzędzia, takie jak kurtyny pamięci , bezpieczne ścieżki mediów i moduły TP , aby ułatwić tworzenie programu, który odszyfrowuje dane, a jednocześnie jest odporny na kontrolę pamięci.

Istnieje wiele innych technik atakowania piractwa, od trywialnych po ezoteryków. Niestety możliwe jest, że wszystkie te techniki nie rozpoznają autentycznej kopii, i zwykle są to metody bardziej agresywne, które mają wyższy współczynnik fałszywych trafień.

Jako wydawca gier zazwyczaj chcesz wybrać zestaw technik, których koszt wdrożenia, oczekiwany czas krakowania i fałszywie dodatni współczynnik są zgodne z Twoimi oczekiwaniami.

Jest powszechnym błędnym przekonaniem, że ochrona przed piractwem ma być całkowicie niezniszczalna. Większość sprzedaży gier ma miejsce w ciągu pierwszych kilku miesięcy po wydaniu, więc schemat ochrony przed piractwem jest zwykle uważany za skuteczny, jeśli złamanie go zabiera wystarczająco dużo czasu, aby wydawca gry zebrał dużą ilość zysków, zanim się zepsuje.

Jeśli chodzi o Game Dev Tycoon, nie korzystali z żadnych technologii antypirackich. Po prostu stworzyli „zepsutą” kompilację i rozpowszechnili ją w BitTorrent, jak stwierdzono na początku wspomnianego artykułu.

Panda Piżama
źródło
1
Nawet mając konkurencyjną odpowiedź, muszę zrzucić mój kapelusz na twoją odpowiedź, lepszą prezentację i oczywiście poświęcić na to więcej czasu. Także lepszy zasięg techniki i muszę powiedzieć, że nigdy nie słyszałem o „kurtynach pamięci, bezpiecznych ścieżkach mediów i modułach TP”. Co to jest ??
v.oddou
@ v.oddou: Są to elementy, których można użyć w DRM obsługiwanym sprzętowo. Moduł TP to procesor kryptograficzny. Wiele nowoczesnych komputerów (2007 i późniejszych) zawiera moduł TPM. Kurtyna pamięci pozwala tworzyć sekcje pamięci tylko do zapisu, których nie można odczytać nawet w systemie operacyjnym, w szczególności do przechowywania kluczy do użycia przez moduł TPM. Bezpieczna ścieżka mediów to system, w którym treść jest przesyłana w postaci zaszyfrowanej od końca do końca (nawet do samego wyświetlacza). Właściwe korzystanie z tych technologii nie jest jednak trywialne ...
Panda Pajama,
Podobnie jak mały dodatek, jest świetny artykuł o ochronie przed kopiowaniem Spyro, który omawia wiele z tych rzeczy w odniesieniu do jednej gry, wraz z uzasadnieniem i ciekawą historią: gamasutra.com/view/feature/3030/keeping_the_pirates_at_bay .php
leander
Ta odpowiedź jest całkowicie błędna. youtube.com/watch?v=FVVx5WYmO2s Oznaczanie do interwencji moderatora.
Krythic,
@ Krythic, a co powiesz na to, by napisać własne, a potem?
Panda Pajama
3

Jest to dość łatwe, wystarczy uruchomić MD5 lub SHA256 na własnym pliku wykonywalnym, a następnie, gdy wykryjesz, że podpis zmienił się z tego, co zapisałeś w pliku binarnym po zbudowaniu ostatecznej wersji, to jasne, że ktoś zhakował twój plik wykonywalny. Wówczas większość firm nie pokazuje już tylko wyskakującego okienka (tak było wcześniej), który mówi „uszkodzony PE” lub „wykryto wirusa”, a następnie wychodzi z gry, ponieważ zostanie to bardzo szybko złamane przez hakerów. Ponieważ gra jest wstrzymana w pętli komunikatów okna dialogowego, można od razu zobaczyć, z jakiej gałęzi wyskoczyło okno dialogowe, i po prostu ominąć gałąź, zmieniając kod przy sprawdzaniu warunków.

Dzisiaj firmy używają bardzo subtelnych zmian w rozgrywce, takich jak zwielokrotnienie życia potworów, aby gra była niemożliwa do gry lub niesamowicie sprytnie zintegrowana z tą grą zarządzania, w której prowadzisz firmę i ostatecznie przegrywasz, ponieważ zbyt wielu graczy pirowało Twoją grę. Nice mise en abyme w tym przypadku. Czasami po prostu dostajesz czerwoną flagę przesłaną na serwery firmy, a kiedy chcesz do nich zadzwonić po wsparcie, dostajesz mowę lub uwięziony w ujawnieniu swojej tożsamości.

ale to jest cały temat, technika jest haszowaniem. a te kontrole mogą być uruchamiane w wielu miejscach w pliku binarnym, więc jeśli hakerzy znajdą jeden i go wyczyszczą, to nie wystarczy.

EDYCJA: Jeśli tylko skopiujesz grę taką, jaka jest, może ona działać, jeśli gra nie ma żadnych środków antypirackich. Działało z bardzo starymi grami, z epoki nagrywarek CD. Dlatego przez większość czasu gra musi zostać zainstalowana, aby można ją było uruchomić, a nie tylko folder instalacji skopiowany. Dotyczy to ukrytych plików umieszczonych nieco w całym systemie i kluczy rejestru. Gra sprawdza obecność tych rzeczy, które może utworzyć tylko instalator. Instalator można uruchomić tylko z dysku CD, którego kopiowanie jest niemożliwe ze względu na błędne bity, które nie przestrzegają systemu kodów korekcji błędów w pierwszych bajtach dysku, który zabija większość sterowników odtwarzaczy CD. Niektóre programy do kopiowania, takie jak zero alkoholu, proponują zignorowanie błędów, ale to, co wypalają, jest wówczas poprawioną kopią, instalator to wykrywa i znowu.

EDYCJA 2:

P: Jak zaszyfrować plik, a następnie wstawić skrót do pliku, który zmienia skrót?

@ Byte56: Cholera, dostajemy inteligentne komentarze tutaj :) Tak, to paradoks i nie można go rozwiązać. Tak więc hash musi być wykonany ze strony pliku binarnego, który nie zawiera hasha. Kod kontrolny musi o tym wiedzieć, aby wykluczyć tę strefę, gdy występuje problem z samodzielnym sprawdzaniem. Widziałem ludzi używających tagów, takich jak ~~ #### [wstaw hash tutaj] #### ~~, aby załączyć swój skrót i zrobić wykluczenie. Ale ma tę wadę, że jest łatwy do wykrycia dla hakerów, więc hash musi zostać zakodowany i rozrzucony w wielu lokalizacjach. Nawet zaszyfrowane, dlaczego nie, a ta sama operacja kamuflażu przechowuje klucz prywatny.

v.oddou
źródło
Co się stanie, jeśli pliki gry zostaną skopiowane w obecnym stanie? Czy skrót nie zostanie sprawdzony w tym przypadku?
Panda Pajama
@PandaPajama: uwaga doskonała. dokonuję edycji.
v.oddou
Jak radzą sobie z haszowaniem pliku wykonywalnego, a następnie na twardym kodowaniu tego skrótu w pliku wykonywalnym, zmieniając tym samym skrót?
MichaelHouse
@ Byte56: zredagowano ponownie :)
.oddou
@MickLH: Muszę powiedzieć, że podobała mi się twoja odpowiedź, ponieważ zgadzam się z tym doświadczeniem, które powinno skłonić ludzi do naturalnego dawania pieniędzy z czystej podziwu. Szkoda, że ​​tak naprawdę nie odpowiedział na pytanie i zostałeś oceniony (oczywiście można powiedzieć). Jesteś zbyt absolutny w kwestii klucza prywatnego. Ten klucz prywatny jest wart nic więcej niż szyfrowanie hash, nie ma on tak dużej wartości jak na przykład baza danych kart kredytowych. Ale jeśli nalegasz, suma kontrolna może zostać wysłana do sieci w celu sprawdzenia na serwerze. Ale bezpieczeństwo jest tylko tak silne, jak jego najsłabszy punkt, a to ma poważną wadę, haker
Dodou
-5

Nie mogę po prostu umieścić partycji ext w grze Mac

Macs Cant Read Ext

Ktoś
źródło
Jeśli na partycji był plik, który był potrzebny, gra nie mogła się uruchomić. Gdyby samo istnienie partycji było „dowodem”, że jest to legalna kopia, NIESAMOWITE łatwo byłoby powielić.
Jesse Williams