Crack (Software)

aus Wikipedia, der freien Enzyklopädie

Ein Crack ist die Kopie eines Computerprogramms, bei der ein herstellerseitig angebrachter Kopierschutz entfernt wurde. Cracking ist eine Tätigkeit, ein Computerprogramm zu analysieren (meist durch Disassemblieren), um den Kopierschutz zu entfernen. Cracking fand erstmals in den 1980er-Jahren mit der weiten Verbreitung von Kopierschutzmaßnahmen bei kommerziellen Computerspielen statt, findet sich jedoch auch bei jeder anderen Kategorie von Computerprogrammen.

Geschichte

Bereits Ende 1970er-, Anfang 1980er-Jahre finden sich erste Kopierschutzmechanismen bei kommerzieller Software, insbesondere Computerspielen. Seitdem dies der Fall war, gab es Personen, die versuchten, den Kopierschutz auszuhebeln, um die Software für befreundete Computerbenutzer kopieren zu können. Leute, die dies taten, nannte man seit Anfang der 1980er Jahre „Software-Cracker“ oder kurz „Cracker“. Einzelne Cracker waren dabei so erfolgreich, dass sie das Cracken zu einer Art Passion machten, meistens unter Verwendung eines anonymisierenden Crackernamens (Nickname, auch Pseudo oder Handle genannt). In den frühen 1980er-Jahren entstanden hieraus Crackergruppen und schließlich die Warez-Szene.

Solche Crackergruppen gibt es bis heute. Beispiele sind RELOADED, CORE, Razor 1911, DEViANCE, Fairlight, TSRh, FFF, SKIDROW und Eagle Soft Inc.

Arten von Cracks

Früher wurden die gecrackten Versionen meist mit einem Vorspann, einem sogenannten Intro bzw. Introductionscreen (Cracktro) einer Crackergruppe versehen. Diese benutzten teils virtuose grafische und akustische Effekte, die nicht selten die Effekte des geknackten (Spiel-)Programms deutlich übertrafen (u. a. zur Zeit des C-64), und verschafften sich so eine gewisse Berühmtheit (siehe auch Demoszene).

Neben dieser klassischen Bedeutung eines Cracks gibt es heute noch weitere Arten:

  • Lizenznummercrack (auch: Key Generator oder Keymaker, kurz KeyGen) erstellen eine Lizenznummer, um ein Produkt zu aktivieren. Der Programmierer des Cracks muss dazu in manchen Fällen Kenntnis von originalen Lizenznummern haben, um den Algorithmus nachprogrammieren zu können. Als Sicherheitsmaßnahme setzen einige Softwarehersteller auf Aktivierungsschlüssel, bei denen jede gültige Lizenznummer noch zusätzlich über das Internet oder Telefon aktiviert werden muss oder bei ausschließlich online agierenden Anwendungen bei jedem Start überprüft wird.[1] Inzwischen können auch diese Aktivierungsschlüssel, wie sie z. B. bei Windows XP/​Vista/​7/​8 verwendet werden, aus anderen Schlüsseln generiert werden.
  • No-CD/DVD, bedeutet, dass das Zielprogramm, das sonst nur mithilfe der Original-CD/DVD laufen würde, auch ohne diese starten lässt. Es lassen sich z. B. Spiele ohne CD/DVD ausführen. Für jede Programmversion ist meist ein anderer Crack notwendig.
  • Backup CD/DVD, bedeutet, dass das Zielprogramm den Kopierschutz auf der CD/DVD nicht mehr abfragt, eine CD/DVD wird aber weiterhin benötigt.
  • Mini-Backup-Images (siehe auch Emulation) sind winzige Abbilder von großen CDs, die nur dazu ausgelegt sind, einen vorhandenen Kopierschutz vorzutäuschen. Sie haben den Vorteil, ein Programm (Spiel) beliebig patchen zu können, ohne einen Crack zu brauchen.
  • Serials und Keys sind Seriennummern oder (CD-)Keys, die man benötigt, um Programme zu installieren bzw. um erweiterte Funktionen freizuschalten (z. B. bei Shareware). Oft werden diese auch als Serialz bezeichnet. Diese können von Lizenznummern-Cracks berechnet werden oder aus dem Speicher abgelesen werden („Serial fishing“). Dabei wird das Programm mittels eines Debuggers an der Stelle in der Prüfroutine, an der die vom Programm berechnete richtige Seriennummer mit der vom Benutzer eingegebenen verglichen wird, angehalten.

Darüber hinaus wurden viele Seriennummern nicht durch Reverse Engineering erlangt, sondern durch Betrug am Softwarehersteller oder durch unerlaubte Weitergabe seitens eines lizenzierten Nutzers – diese erkennt man daran, dass statt Cracker-Pseudonymen als Lizenznehmer Realnamen oder Firmennamen enthalten sind. Solche Seriennummern werden nicht zu den Cracks gezählt, da bei deren Erlangung kein Reverse Engineering notwendig ist.

  • Dongle-Emulationen simulieren mit einem kleinen Programm das angebliche Vorhandensein eines physikalischen (USB-)Kopierschutzschlüssels (z. B. Syncrosoft, Ilok, CodeMeter) auf dem die Lizenzfreischaltungen (per Internet oder vorautorisiert) enthalten sind.
  • Cracks sind im engeren Sinne kleine Dateien, die insbesondere bei zu Testzwecken heruntergeladener Software Dateien austauschen oder modifizieren, um sie in „Vollversionen“ umzuwandeln. Da heute die meisten Hersteller kostenlose „Probeversionen“ zum Herunterladen anbieten (Shareware, Demoversionen), mit denen nahezu alle Funktionen ausgiebig getestet werden können, muss der Kaufwillige zur dauerhaften Freischaltung des Programms nur noch einige kleine Dateien aus dem Internet nachladen; dies erfolgt meist unmittelbar nach der Bezahlung. Einige Cracks sind exakte Kopien dieser Originaldateien, andere wurden von Crackern geschrieben und manipulieren die Programme dahingehend, dass keine Programmaktualisierung („update“) mehr erfolgen kann (das die Sperrung illegaler Versionen ermöglicht) oder die Produktaktivierung dauerhaft umgangen wird (ein Problem, dem besonders Microsoft und Adobe ausgesetzt sind) und dergleichen mehr. Meist werden vollständige Bibliotheken, die sonst bei der Umwandlung von Shareware bzw. Demo-Programmen in uneingeschränkt nutzbare Vollversionen (Herunterladen von Kaufprogrammen) automatisch nachgetragen werden, auf einschlägigen Seiten oder in Filesharing-Börsen zum Herunterladen angeboten. Gleiches gilt für Seriennummern und Schlüsselgeneratoren („key generators“). Sie werden auch als „Crackz“ bezeichnet.

Cracks werden durch Cracking-Groups erstellt. Hierbei unterscheidet man zwischen Release Groups und Web Groups: Release Groups arbeiten eher im Verborgenen und nutzen FTP-Server zum Verteilen ihrer Releases. Ihnen geht es darum, die erste Gruppe zu sein, die zu einem Programm einen Crack veröffentlicht. Hierfür wird ein ausgefeiltes Dupecheck-System verwendet, so dass Mitglieder der Gruppe jederzeit prüfen können, zu welchem Programm schon Cracks vorhanden sind. Web Groups veröffentlichen ihre Cracks auf normalen Webseiten und machen sie so einem breiten Publikum zugänglich.

Oft werden Cracks auch euphemistisch als Patch bezeichnet, was insofern zweideutig ist, da Patches eigentlich einen Fehler in der Software beheben und oft auch Hersteller Patches zu ihrer Software anbieten.

Erstellung von Cracks

Um einen Crack herzustellen, verwenden Cracker vor allem Disassembler, Debugger und Hex-Editoren. Dabei wird nichts Neues programmiert, sondern nur nachvollzogen, wie der ursprüngliche Code funktioniert, um das Programm gezielt zu verändern. Fortgeschrittene Kenntnisse in der jeweiligen Assemblersprache sind dabei notwendig.

Zurücksetzen der Probezeit („Trial Reset“)

Viele im Internet downloadbare kommerzielle Programme haben eine Probezeit (meist 30 Tage) und verlangen dann die Registrierung (den Kauf), um weiterhin zu funktionieren. Zum Zurücksetzen der Probezeit („Trial Reset“) werden Registryschlüssel und/oder Dateien, die Informationen zur Probezeit enthalten, verändert und/oder gelöscht. Cracker entwickeln für bestimmte Programme oder zuweilen auch für eine Gruppe von Programmen desselben Herstellers „Trial Resetter“, die dies mit einem Mausklick erledigen. Bei einigen älteren Programmen reichte es aus, Datum und Uhrzeit des Computers auf Beginn der Probezeit zu ändern, wenn man mit ihnen arbeiten wollte. Einige Programme können auch ein „virtuelles Datum“ und eine „virtuelle Uhrzeit“ simulieren. Manche Programme lassen sich während der Probezeit nur ein paar Mal benutzen und verweigern dann bis zur Registrierung den Dienst. (In dem Registryschlüssel und/oder der versteckten Datei wird die Anzahl der Programmstarts festgehalten; diese wird beim Programmstart abgefragt, und wenn die vorgegebene Zahl erreicht ist, kann man das Programm erst nach Registrierung weiterbenutzen. Hier ist die Simulation eines falschen Datums und einer falschen Uhrzeit sinnlos.) Viele Programme lassen bei ihrer Deinstallierung einen versteckten Wert im Registry zurück, dessen Vorhandensein bei der Erstinstallation (sein Fehlen hier bedeutet, die Probezeit wurde noch nicht gestartet) und bei einer Neuinstallation abgefragt wird, so dass es nicht möglich ist, die Probezeit durch einfaches Deinstallieren und Neuinstallieren zurückzusetzen. Eine weitere Methode für einen Trial Reset ist eine virtuelle Maschine. Hier wird ein vollständiger PC samt aufgespielter Software emuliert und läuft als Anwendung in einem Windows-Fenster. Der Zustand der Maschine lässt sich einfrieren und immer wieder zurücksetzen. So lässt sich das System auch jederzeit auf den Tag vor der Installation der Demoversion zurücksetzen. Allerdings verfügt das virtuelle System nicht über die Leistungsfähigkeit des PCs. Rechen- oder grafikintensive Anwendungen laufen langsamer ab. Manchmal wird empfohlen, vor der Installation des Programms eine Kopie des gesamten Registry zu erstellen. Nach Ablauf der Probezeit kann man dann das Registry auf seinen Zustand vor der Programminstallation zurücksetzen. Dabei gehen allerdings auch alle Änderungen verloren, die in der Zwischenzeit von anderen Programmen oder vom Betriebssystem durchgeführt wurden, und etwaige versteckte Dateien mit Informationen zur Probezeit bleiben unverändert. Die wirksamste, aber extremste Art, eine erneute Probezeit zu erhalten, ist die Neuformatierung der Systemfestplatte, wodurch deren gesamter Inhalt – einschließlich Registry-Einträge und versteckte Dateien – gelöscht wird (das Betriebssystem muss neu aufgespielt und der Computer neu eingerichtet werden).

Eine Methode, Trial Resets sinnlos zu machen, ist die Beschränkung des Programms während der Probezeit (bestimmte Funktionen sind nur in der registrierten Version verfügbar, erstellte Grafiken, Videos und Ausdrucke erhalten ein Wasserzeichen, das Programm läuft nur 10 – 20 Minuten und schaltet sich dann automatisch ab usw.). Manche Programme müssen bereits für die Probezeit im Internet aktiviert werden und nehmen beim Start Verbindung mit dem Internet auf, um zu überprüfen, ob die Probezeit abgelaufen ist. Die Informationen zur Probezeit werden also nicht auf dem Computer des Anwenders, sondern auf einem externen Internetserver gespeichert, so dass eine Manipulation äußerst schwierig ist. Am ehesten wäre noch eine Entfernung dieser Abfrage im Programmcode denkbar. Die Nachteile dieses Verfahrens sind, dass man das Programm nicht ohne Internetverbindung benutzen kann, selbst wenn es dann keinen Internetzugang mehr benötigt (der Server zur Datenabfrage könnte auch zeitweise nicht erreichbar oder ganz abgeschaltet worden sein), und dass man sich im Voraus registrieren muss (Datenschutz!), auch wenn man das Programm nach Ablauf der Probezeit nicht mehr verwenden, sondern deinstallieren will.

Manche Programme haben eine unbegrenzte Probezeit, sind aber eingeschränkt, solange sie nicht registriert sind.

Etliche Programme gibt es auch in einer kostenlosen Grundversion und in einer Bezahlversion mit mehr Funktionen (Freemium). Die Gratis-Versionen enthalten manchmal Werbebotschaften (Adware), um den Anwender zum Kauf der (dann oft, aber nicht immer werbefreien) Bezahlversion (und manchmal auch zum Kauf anderer Produkte des Herstellers) zu motivieren. Einige Gratisprogramme versuchen bei der Installation, andere Software, Toolbars oder Ähnliches mitzuinstallieren. Manche kommerzielle Programme zeigen während ihrer Probezeit einen Nagscreen, der den Benutzer zur Registrierung auffordert. Manche Sicherheits- und/oder Reinigungsprogramme geben während der Probezeit oder in der Gratis-Version sogar falsche Alarmmeldungen aus. Klickt man dann auf diese, erscheint eine Aufforderung zur Registrierung oder zum Kauf der Bezahlversion.

Manche Programme, die man durch Registrierung von einer Gratis- in eine Vollversion umwandeln kann, starten ihre Probezeit nicht schon am Tage der Installation, sondern lassen den Anwender selbst entscheiden, wann oder ob er die zusätzlichen Funktionen überhaupt testen will. In der Zwischenzeit hat der Anwender nur Zugriff auf die Funktionen der Gratis-Version. Ein Beispiel für ein solches Programm ist Malwarebytes.

Bei einigen Programmen, besonders bei solchen, die häufig aktualisiert werden, wie zum Beispiel Antiviren- und andere Sicherheitssoftware, erwirbt man bei der Registrierung nur eine zeitlich begrenzte Nutzungslizenz (oft für 1–3 Jahre), die nach ihrem Ablauf kostenpflichtig erneuert werden muss. (In manchen Fällen funktioniert das Programm nach Lizenzablauf gar nicht mehr oder nur noch eingeschränkt, in anderen funktioniert es weiter, lässt sich aber nicht mehr aktualisieren.)

Manche Programme verlangen den Erwerb mehrerer Lizenzen, wenn man alle Funktionen nutzen will: So benötigt die Kaufversion von DVDFab Passkey zum Beispiel jeweils gesonderte Lizenzen für die DVD-Funktionen und für die Blu-ray-Funktionen.

Rechtliche Lage

Die meisten kommerziellen Applikationen untersagen in ihren Lizenzbedingungen jegliche Modifikationen der Software oder sogar schon den Vorgang des Disassemblierens. In vielen Ländern existieren Gesetze, die definieren, inwieweit eine Modifikation eines Binärprogramms erlaubt ist. In Deutschland ist das Modifizieren eines Binärprogramms somit grundsätzlich erlaubt, solange die ursprüngliche Funktionalität des Programms nicht beeinträchtigt wird. Zusätzliche Funktionen dürfen dabei alleine zum Zwecke der Herstellung von Kompatibilität zu eigenen Programmen implementiert werden. Ein Patch darf dabei nur in Form eines Programms verbreitet werden, das die Originaldatei nach Vorgaben verändert, jedoch nicht in Form einer modifizierten Kopie der Originaldatei. Das Recht, ein Programm zum Zwecke der Herstellung von Kompatibilität zu verändern, ist auf internationaler Ebene nicht selbstverständlich. Das Untersagen jeglicher Modifikationen in den Lizenzbedingungen hat jedoch in den seltensten Fällen rechtswirksame Konsequenzen, da dies u. a. auch den Vorgang des Entfernens eines Computervirus durch Antivirenprogramme in Frage stellt.

Da die rechtliche Lage häufig unklar ist, was das Entfernen von einem Kopierschutz betrifft, verwenden manche kommerzielle Applikationen einen verschlüsselten oder komprimierten Binärcode, wodurch die Daten gemäß Vorgaben in ausführbaren Maschinencode konvertiert werden müssen, bevor sie vom Computer interpretierbar sind. Da die Programme jedoch dem Rechner „verraten“ müssen, wie die integrierten Daten zu konvertieren sind, ist es auch für Cracker nachvollziehbar, wie sich der Code in einen interpretierbaren Zustand konvertieren lässt. Die Software-Industrie implementiert solche Verfahren, um es einerseits den Crackern zu erschweren, das Programm zu interpretieren, jedoch auch, um die Möglichkeit zu unterbinden, ein Patch-Programm zur Modifikation des Original-Programms zu veröffentlichen, da es so nicht mehr möglich ist, das Programm durch das Verändern einzelner Bytes zu modifizieren, und als einzige Möglichkeit die Verbreitung einer vollständigen modifizierten Originaldatei verbleibt. Dies ist urheberrechtlich meist eindeutig untersagt.

Siehe auch

Weblinks

Einzelnachweise

  1. Cracker unter Druck. PC-Welt, 14. Juni 2000, abgerufen am 26. Februar 2014.