Wie erkennen PC / Mac-Spiele Piraterie?

27

Ich habe kürzlich einen Artikel über clevere Methoden gelesen, mit denen Programmierer ihre Spiele vor Piraten schützen, wie etwa die Entwickler von Game Dev Tycoon . Das hat mich neugierig gemacht: Wie stellen sie fest, dass es sich bei der Kopie des laufenden Spiels tatsächlich um eine Raubkopie handelt? Die naheliegendste Antwort, die ich durch Recherchen finden konnte, war, wie SNES-Kassetten feststellen können, ob sie Raubkopien enthalten , aber diese Taktik gilt offensichtlich nicht für PCs.

caseif
quelle
1
Ich denke, diese Frage ist zu weit gefasst. Es gibt eine Reihe von Möglichkeiten, wie Spiele Piraterie erkennen, und viele davon sind für jedes Spiel spezifisch.
MichaelHouse
10
@Byte56 Ich stimme zu, dass die Frage ziemlich weit gefasst ist, aber ich denke, es ist immer noch eine gute Frage. Eine ideale Antwort könnte eine gängige Piraterieerkennungsmethode darstellen und möglicherweise Links zu Quellen enthalten, in denen andere bekannte Lösungen erläutert werden.
kevintodisco
2
Der wahrscheinlich beste Weg, um Piraterie zu vermeiden, besteht darin, das zu tun, was Blizzard für Diablo III getan hat: Der Client rendert und so. Die meisten Spielregeln und -logiken werden jedoch nur auf Blizzard-Servern gespeichert (z. B. wie viel Gold Sie erhalten, wenn du öffnest eine Truhe in Raum X mit einem Spieler der Stufe Y). Es ist nicht möglich, dies zu umgehen, es sei denn, Sie haben Blizzard-Binärdateien / -Quelle für den Serverteil gestohlen (was sehr unwahrscheinlich ist). Einige Leute haben Emulatoren erstellt, aber da es sich nicht um die gleichen Regeln handelt (es handelt sich um Näherungswerte), bietet es nicht die gleiche Spielerfahrung.
Tigrou

Antworten:

53

Das Wichtigste zuerst: Ein Computer kann nicht wissen, ob eine Datei raubkopiert wurde oder nicht. Piraterie ist ein juristischer / moralischer Begriff und hat daher keine Bedeutung in einer Datei, die nur aus Einsen und Nullen besteht.

Allerdings konzentrieren sich Piraterieprävention und Gegenmaßnahmen in der Regel darauf, herauszufinden, ob ein Benutzer etwas (normalerweise ein Objekt) hat, das nur erhältlich ist, wenn eine Kopie des Spiels gekauft wurde, und machen es schwierig, dieses zu duplizieren. Hierfür gibt es unzählige Möglichkeiten, von denen jede sowohl Vorteile als auch Mängel aufweist. Ich werde einige erwähnen:

  • In frühen Spielen wurden die Benutzer gebeten, ein Wort aus dem Spielhandbuch einzugeben, das Sie nur erhalten sollten, wenn Sie eine Spielebox gekauft haben. Ein Fotokopierer oder ein Scanner können diese Technik jedoch leicht umgehen.

  • In jüngerer Zeit sind Medienprüfungen häufiger. Damit das Spiel ausgeführt werden kann, muss sich die Spiel-CD im Laufwerk befinden. Um dies zu implementieren, können Sie beispielsweise auf wichtige Datendateien von der CD zugreifen, ohne die das Spiel nicht ausgeführt werden kann, oder einfach überprüfen, ob eine Datei auf der CD vorhanden ist. Dies funktionierte recht gut, wenn CDs schwer zu duplizieren waren, aber CD-Kopierer und neuere Laufwerkemulatoren können verwendet werden, um diese Technik einfach zu umgehen.

  • CD-Kopien sind jedoch nicht perfekt, daher konzentrieren sich viele andere Techniken darauf, zu erkennen, ob es sich bei der CD um die gepresste Original-CD oder um eine Kopie handelt. Um dies zu implementieren, kann ein Spiel auf Nicht-Standard-Elemente prüfen, die während der Druckzeit auf der Spiel-CD eingelegt sind, die jedoch von einem CD-Brenner auf einer CD-R nicht einfach und zuverlässig repliziert werden können. Einige gebräuchliche Wege, dies zu tun, sind:

    • Erstellen von Dummy- "Ghost" -Dateien auf der CD während des Masterings, auf die über das CD-Dateisystem nicht zugegriffen werden kann, die jedoch vorhanden sind, und die gelesen werden können, wenn Sie wissen, wo Sie sie finden. Diese Daten fehlen bei dateiweisen Kopien. Durch Kopieren des gesamten Disc-Images werden diese Dateien jedoch kopiert.

    • Eine andere Möglichkeit besteht darin, absichtlich Fehler in die Disc einzufügen. CDs enthalten Fehlerkorrekturcodes. Durch Einfügen von Fehlern in die Daten, die von einem Disc-Reader transparent korrigiert werden können, funktioniert die Disc normal, die Fehler werden jedoch nicht auf die CD-R kopiert. Wenn ein Spiel nach diesen absichtlichen Fehlern sucht, kann es eine CD als eine gepresste Originalkopie betrachten. RAW-Disc-Image-Kopien machen dies jedoch zunichte.

    • Das Einfügen von Zwillingssektoren mit derselben Adresse, aber unterschiedlichen Daten führt zu unterschiedlichen Ergebnissen, wenn Daten vorwärts und rückwärts gesucht werden. Es ist möglich, dies zu überprüfen, und das Duplizieren einer CD mit diesen Zwillingssektoren ist sehr schwierig.

    • Messung der tatsächlichen Position der Pits auf der CD. Wiederum ist das Duplizieren einer CD mit den Pits an den gleichen Positionen sehr schwierig.

    Viele CD-Emulatoren wie Daemon Tools oder Alcohol 120% können diese Funktionen jedoch tatsächlich emulieren. Aus diesem Grund entscheiden sich viele Publisher für einen Schritt zur Erkennung von CD-Emulatoren und verhindern, dass das Spiel ausgeführt wird, wenn ein Emulator erkannt wird. Die Implementierung eines Emulatordetektors liegt jedoch außerhalb des Rahmens dieser Antwort.

  • Anstelle von oder zusätzlich zur Suche nach einer physischen CD kann ein Spiel den Benutzer auffordern, einige Daten wie einen Produktschlüssel einzugeben . Einige Möglichkeiten zur Verwendung von Produktschlüsseln sind:

    • Überprüfen des Schlüssels auf mathematische Merkmale. Dies verhindert jedoch nicht das Duplizieren von Schlüsseln, und wenn der Überprüfungsalgorithmus entdeckt oder rückentwickelt wird, kann ein Pirat möglicherweise nach Belieben neue Schlüssel erstellen, die für das Spiel als legitim erscheinen. Software, die nach Belieben Schlüssel erzeugt, heißt " keygens ".

    • Wenn Sie einen Hash basierend auf der Hardware des Benutzers generieren, senden Sie diesen Hash und den Produktschlüssel (normalerweise eine Kombination, die als "Installationsschlüssel" bezeichnet wird) an einen Server der Spielefirma. Erstellen Sie anhand des Hashs und der Seriennummer einen Aktivierungsschlüssel . Bei Verwendung von numerischen Einwegmethoden (wie z. B. modulare Arithmetik oder einige Methoden mit elliptischen Kurven) kann ein Spiel feststellen, ob der Aktivierungsschlüssel mit dem Hash und dem Seriencode übereinstimmt, und nur ausgeführt werden, wenn sie übereinstimmen. Diese Technik wird "Aktivierung" genannt.

    Bei der Aktivierung kann ein Server die Bereitstellung von Aktivierungsschlüsseln für mehrere Hardware-Hashes mit demselben Seriencode verweigern. Selbst wenn der Seriencode und der Aktivierungsschlüssel kopiert werden, stimmt der Aktivierungsschlüssel aus diesem Grund nicht überein und das Spiel kann nicht auf anderen Computern ausgeführt werden.

Mit all diesen Maßnahmen soll festgestellt werden, ob der Benutzer eine gekaufte Kopie des Spiels besitzt oder nicht. Die Implementierung erfordert jedoch Programmcode, der dies überprüft. Es ist möglich, dass ein Pirat den Spielcode ändert, um die Prüfungen zu deaktivieren oder zu umgehen, anstatt die Kopierschutzmechanismen selbst anzugreifen. Das Ändern von Spiel-Binärdateien zum Entfernen von Anti-Piraterie-Überprüfungen wird als "Knacken" bezeichnet.

Das Knacken kann einfach darin bestehen, die ausführbare Datei des Spiels zu zerlegen, den Ort zu finden, an dem die relevanten Prüfungen durchgeführt werden, sie zu ändern, um die Prüfungen zu deaktivieren, oder die Ergebnisse zu ignorieren und sie wieder zusammenzusetzen. Einige Möglichkeiten, dem Cracken entgegenzuwirken, sind:

  • Überprüfen Sie die Binärdatei mit einem Hash. Es muss jedoch ein Programm geben, das den Hash überprüft, der wiederum auch geknackt werden kann.

  • Das Programm oder einfach die Prüfroutine verschlüsseln und zur Laufzeit entschlüsseln. Dies erschwert die Demontage, da ein oder mehrere zusätzliche Entschlüsselungsschritte erforderlich sind. WENN der Entschlüsselungsschlüssel im Programm enthalten ist (wie es sein muss, da das Spiel ohne ihn nicht entschlüsselt werden kann), kann der Pirat die Entschlüsselung rückgängig machen, die Routine finden und den Kopierschutz aufheben.

    Aus diesem Grund möchten Sie als Spiele-Publisher den Schlüssel so schwer wie möglich finden und optional den Entschlüsselungsalgorithmus schwer verständlich machen. Einige Möglichkeiten, den Schlüssel schwer zu finden, sind:

    • Verdecken Sie es, indem Sie es auf seltsame Weise erstellen. Dies verlangsamt einfach den Crackprozess.

    • Erstellen Sie pro Computer Master-Schlüssel, die dem oben genannten seriellen Schutz ähneln.

    Unabhängig von der Methode, die Sie zum Erstellen Ihrer Schlüssel verwenden, befinden sich die Schlüssel selbst im Speicher, während die Entschlüsselung ausgeführt wird. Speicherinspektoren, Debugger und Emulatoren können einem Piraten helfen, den Schlüssel zu finden und zu kopieren, während er sich im Speicher befindet. Memory Peeking kann auf verschiedene Arten angegriffen werden:

    • Über einen privilegierten Dienst verfügen, der Speicherzugriffe in der angegebenen Region erkennt und die Adressierung an eine andere Stelle umleitet. Da dies Ring-0-Zugriff erfordert und Programme, die dies tun, häufiger für nicht so legitime Zwecke verwendet werden , blockiert Antivirensoftware diese normalerweise. (Aus diesem Grund werden viele Spiele und andere Software aufgefordert, den Virenschutz beim Ausführen zu deaktivieren.) Das Schreiben von Software, die dies korrekt ausführt, ist äußerst schwierig und kann die Stabilität und Sicherheit des Host-Betriebssystems leicht gefährden. Der XCP-Skandal ist ein gutes Beispiel für eine fehlerhafte Implementierung dieser Methode.

    • Moderne Hardware- und Betriebssysteme bieten einige Tools, wie z. B. Speichervorhänge , sichere Medienpfade und TP-Module , um die Erstellung eines Programms zu vereinfachen, das Daten entschlüsselt und gleichzeitig widerstandsfähig gegen Speicherinspektion ist.

Es gibt noch viel mehr Techniken, um die Piraterie anzugreifen, von der Trivialität bis zur Esoterik. Leider ist es möglich, dass all diese Techniken eine Originalkopie nicht erkennen. In der Regel sind es die aggressiveren Techniken, die höhere falsch-positive Verhältnisse aufweisen.

Als Spiele-Publisher möchten Sie in der Regel eine Reihe von Techniken auswählen, deren Implementierungskosten, erwartete Crack-Zeit und falsch positives Verhältnis Ihren Erwartungen entsprechen.

Es ist ein weit verbreitetes Missverständnis, dass Piraterieschutz absolut unzerbrechlich sein soll. Die meisten Spielverkäufe finden in den ersten Monaten nach der Veröffentlichung statt. Daher wird ein Piraterieschutzsystem normalerweise als effektiv angesehen, wenn es genügend Zeit in Anspruch nimmt, damit der Spielehersteller eine große Menge an Gewinnen sammeln kann, bevor es kaputt geht.

In Bezug auf Game Dev Tycoon verwendeten sie keine Anti-Piraterietechnologien. Sie haben einfach einen "kaputten" Build erstellt und ihn über BitTorrent verteilt, wie am Anfang des von Ihnen erwähnten Artikels angegeben.

Panda-Pyjama
quelle
1
Selbst wenn ich eine konkurrierende Antwort habe, muss ich meinen Hut auf Ihre Antwort, eine bessere Präsentation und natürlich mehr Zeit legen. Bessere Abdeckung von Techniken, und ich muss sagen, dass ich noch nie von "Speichervorhängen, sicheren Medienpfaden und TP-Modulen" gehört habe. Was ist das ??
v.oddou
@ v.oddou: Dies sind Elemente, die für hardwareunterstütztes DRM verwendet werden können. Ein TP-Modul ist ein kryptografischer Prozessorchip. Viele moderne Computer (2007 und später) enthalten ein TPM. Mit einem Speichervorhang können Sie schreibgeschützte Speicherabschnitte erstellen, die auch für das Betriebssystem nicht lesbar sind, insbesondere zum Speichern von Schlüsseln für das TPM. Ein sicherer Medienpfad ist ein System, bei dem Inhalte von Ende zu Ende verschlüsselt übertragen werden (sogar bis zur Anzeige). Die korrekte Verwendung dieser Technologien ist jedoch
alles
Als winziges Add-On gibt es einen großartigen Artikel über den Spyro-Kopierschutz, in dem viele dieser Dinge
Leander
Diese Antwort ist völlig falsch. youtube.com/watch?v=FVVx5WYmO2s Markieren für Moderatorintervention.
Krythic
@Krythic wie wärs wenn du deine eigene schreibst und dann?
Panda-Pyjama
3

Es ist ziemlich einfach, Sie müssen nur eine MD5- oder SHA256-Datei auf Ihrer eigenen ausführbaren Datei ausführen. Wenn Sie dann feststellen, dass sich die Signatur von dem, was Sie fest in die Binärdatei codiert haben, nach dem Erstellen der endgültigen Version geändert hat, hat jemand Ihre ausführbare Datei gehackt. Dann zeigen die meisten Unternehmen nicht mehr nur ein Popup (wie es früher der Fall war), das "defektes PE" oder "Virus erkannt" anzeigt, und beenden dann das Spiel, da dies sehr schnell von Hackern zurückgebrochen wird. Da das Spiel in der Nachrichtenschleife des Dialogfelds angehalten ist, ist sofort erkennbar, in welchem ​​Zweig das Dialogfeld geöffnet wurde, und Sie können den Zweig einfach umgehen, indem Sie den Code bei der Zustandsüberprüfung ändern.

Heutzutage verwenden Unternehmen sehr subtile Änderungen im Gameplay, wie die Vervielfachung des Lebens von Monstern, um das Spiel unspielbar zu machen, oder sind unglaublich geschickt in dieses Managementspiel integriert, in dem Sie eine Spielefirma leiten und schließlich verlieren, weil zu viele Spieler Ihr Spiel raubkopierten. In diesem Fall ein schöner Abgrund. Manchmal bekommt man nur eine rote Fahne auf die Server des Unternehmens hochgeladen, und wenn man sie anrufen möchte, um Unterstützung zu erhalten, erhält man eine Rede oder wird gefangen, wenn man seine Identität preisgibt.

Aber das ist alles ein Thema, die Technik ist Hasching. und diese Prüfungen können an vielen Stellen in der Binärdatei ausgeführt werden, sodass es nicht ausreicht, wenn Hacker eine finden und löschen.

BEARBEITEN: Wenn Sie das Spiel einfach so kopieren, wie es ist, funktioniert es möglicherweise, wenn das Spiel überhaupt keine Maßnahmen gegen Piraterie hat. Es funktionierte mit sehr alten Spielen, vor der CD-Brenner-Ära. Aus diesem Grund muss das Spiel die meiste Zeit installiert werden, damit es ausgeführt werden kann, und nicht nur der kopierte Installationsordner. Dies beinhaltet versteckte Dateien, die überall im System abgelegt werden, und Registrierungsschlüssel. Das Spiel überprüft das Vorhandensein dieser Dinge, die nur vom Installer erstellt werden können. Das Installationsprogramm kann nur von der CD ausgeführt werden, die aufgrund fehlerhafter Bits, die das Fehlerkorrekturcodesystem in den ersten Bytes der CD nicht berücksichtigen, nicht kopiert werden kann. Dies führt zum Tod der meisten CD-Player-Treiber. Einige Kopiersoftware, wie Nero Alkohol, schlägt vor, die Fehler zu ignorieren, aber was sie brennen, ist dann eine korrigierte Kopie. Der Installer erkennt das und los geht's wieder.

EDIT2:

F: Wie kann man eine Datei hashen und dann den Hash in die Datei einfügen, die den Hash ändert?

@ Byte56: Verdammt, wir bekommen hier intelligente Kommentare :) Ja, es ist ein Paradoxon und es kann nicht gelöst werden. Der Hash muss also für den Teil der Binärdatei erstellt werden, der den Hash nicht enthält. Und der Prüfcode muss dies wissen, um diese Zone auszuschließen, wenn eine Selbstprüfung durchgeführt werden soll. Ich habe Leute gesehen, die Tags wie ~~ #### [hier Hash setzen] #### ~~ verwendeten, um ihren Hash einzuschließen und den Ausschluss zu machen. Aber es hat den Nachteil, dass es für Hacker leicht zu erkennen ist. Daher muss der Hash-Code verwürfelt und an mehreren Stellen verstreut werden. Sogar verschlüsselt, warum nicht, und der gleiche Tarnungsvorgang speichert den privaten Schlüssel.

v.oddou
quelle
Was passiert, wenn die Spieledateien unverändert kopiert werden? Wird der Hash in diesem Fall nicht validiert?
Panda Pyjama
@ PandaPyjama: ausgezeichnete Bemerkung. Ich bearbeite gerade.
v.oddou
Wie gehen sie mit dem Hashing einer ausführbaren Datei und der anschließenden Hardcodierung der ausführbaren Datei um, wodurch der Hash geändert wird?
MichaelHouse
@ Byte56: nochmals bearbeitet :)
v.oddou
@ MickLH: Ich muss sagen, dass mir Ihre Antwort gefallen hat, weil ich der Erfahrung zustimme, dass Menschen dazu bewegt werden sollten, auf natürliche Weise aus purer Ehrfurcht Geld zu geben. Schade, dass es die Frage nicht wirklich beantwortet hat und du runtergestimmt wurdest (man könnte natürlich sagen). Sie sind auf dem privaten Schlüssel zu absolut. Dieser private Schlüssel ist nichts anderes wert als eine Hash-Verschlüsselung. Er ist nicht so wertvoll wie eine Kreditkartendatenbank. Wenn Sie jedoch darauf bestehen, kann die Prüfsumme im Netzwerk zur Überprüfung auf dem Server gesendet werden. Aber Sicherheit ist nur so stark wie der schwächste Punkt, und dies hat einen schwerwiegenden Fehler, einen Hacker
v.oddou
-5

Ich kann nicht einfach eine Ext-Partition in ein Mac-Spiel einfügen

Macs können ext nicht lesen

Jemandem
quelle
Wenn es eine Datei auf der Partition gab, die benötigt wurde, konnte das Spiel nicht ausgeführt werden. Wenn nur die Existenz der Partition ein "Beweis" dafür wäre, dass es sich um eine legitime Kopie handelt, wäre die Replikation UNGLAUBLICH einfach.
Jesse Williams