Crack (Software)
aus Wikipedia, der freien Enzyklopädie
Ein Crack beziehungsweise Cracking ist die Umgehung von Schutzmechanismen in Computerprogrammen. Solcherlei Verfahren kamen in den 1980er Jahren auf, als erste Softwareprodukte illegal kopiert wurden.
Inhaltsverzeichnis |
[Bearbeiten] Arten von Cracks
Im Bereich des Cracking gibt es unzählige Arten und Weisen, die Merkmale eines Cracks erfüllen. Im klassischen Sinne wurden Anwendungen und auch Spielsoftware entschützt, indem ein vorhandener Kopierschutz o.ä. entfernt oder umgangen wurde, so daß die Software anschließend ohne Kopierschutz verbreitet werden konnte. Cracken bezeichnet also das Entfernen bzw. Deaktivieren des Kopierschutzes. Meist wurden die gecrackten Versionen mit einem Vorspann, einem so genannten Intro bzw. Introductionscreen (Cracktro) einer Crackergruppe versehen.
Neben dieser klassischen Bedeutung eines Cracks gibt es heute noch weitere Arten:
- Lizenznummercrack (auch: Key Generator oder Keymaker, kurz KeyGen) zählen zu den umfassend illegalen Programmen. Sie 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. Inzwischen können auch Aktivierungskeys, wie sie z. B. bei Microsoft Windows XP verwendet werden, aus anderen Keys 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 Images 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 Serien-Nummern oder (CD-)Keys, die man benötigt, um Programme zu installieren bzw. um erweiterte Funktionen freizuschalten (z. B. bei Shareware). Diese können von Lizenznummerncracks berechnet werden.
- Cracks im engeren Sinne sind kleine Dateien, die insbesondere bei zu Testzwecken heruntergeladener Software Dateien austauschen oder ergänzen, um sie in "Vollversionen" umzuwandeln. Da heute die meisten Hersteller kostenlose "Probeversionen" zum Download 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 Hackern geschrieben und manipulieren die Programme dahingehend, dass kein 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 komplette DLLs, die sonst bei der Umwandlung von Shareware bzw. Demo-Programmen in uneingeschränkt nutzbare Vollversionen (Download von Kaufprogrammen) automatisch nachgetragen werden, auf fragwürdigen Seiten oder in Filesharing-Börsen zum Download angeboten. Gleiches gilt für Seriennummern und Keygeneratoren.
Das Anwenden von Cracks, die aktiv in ein urheberrechtlich geschütztes Programm eingreifen, ist illegal. Bei Zwischenschaltung von Software (ohne Veränderung des Programmcodes), die das Nutzen von Sicherheitskopien (z. B. Images) von rechtlich einwandfrei lizenzierter bzw. erworbener Software ermöglicht, bestehen keine rechtlichen Bedenken, sofern die Nutzung der Software nicht das in der Lizenz bestimmte Maß überschreitet (z. B. durch Nutzung der Software auf mehr als der Anzahl Rechnersysteme, für die die Lizenz erworben wurde).
Ein Crack ist zwar aus dem Gesichtspunkt der Weiterverbreitung und geschäftlichen bzw. unternehmerischen Nutzung illegal, jedoch auf privater Basis in manchen Ländern legal.
Cracks werden durch Cracking-Groups erstellt. Hierbei unterscheidet man zwischen 'Release' und 'Web' Groups. Releasegroups arbeiten eher im Verborgenen und nutzen FTP-Server zum Verteilen ihrer Releases. Ihnen geht es darum, die erste Group zu sein, die zu einem Programm einen Crack veröffentlicht. Hierfür wird ein ausgefeiltes Dupecheck-System verwendet, so dass Mitglieder der Groups 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, als Patches eigentlich einen Fehler in der Software beheben und oft auch Hersteller Patches zu ihrer Software anbieten.
[Bearbeiten] Die technische Seite
Viele Cracks werden allein durch winzig kleine (ein Byte) Änderungen des Assembler Codes erreicht. Nehmen wir zum Beispiel ein Shareware Programm, das in der Testphase durch die maximale Anzahl der Starts (20) beschränkt ist. Im Code wird dann eventuell mittels des Befehls CMP (Compare) verglichen, ob die maximale Startanzahl erreicht wurde, und mittels eines bedingten Sprungbefehls dementsprechend verzweigt. Bei den bedingten Sprungbefehlen handelt es sich z. B. um JZ (Jump if zero), JNZ (Jump if not zero), JA (Jump if above), JNA (Jump if not above), JB (Jump if below), JNB (Jump if not below), JE (Jump if equal), JNE (Jump if not equal) usw. Beim Cracken wird z. B. der originale Sprungbefehl durch den unbedingten Sprung JMP (Jump) oder, wenn nicht gesprungen werden soll, durch ein oder mehrere NOP (No operation) ausgetauscht. Es sollte nur zum Testen während der Entwicklung des Cracks der originale Sprungbefehl durch das Gegenteil ersetzt werden (z. B. JA durch JNA). Im fertigen Crack wird aber immer JMP oder NOP bevorzugt, da so die Anwendung in jedem Fall wie gewünscht verzweigt.
[Bearbeiten] Vorher
... 80F814 CMP AL, 14h ; Das Register AL wird mit dem Wert 14 hexadezimal (entspricht 20 dezimal) verglichen 7230 JB Programm_Beenden
; Near JB; Ist der Wert unter 20, wird das Programm nicht gestartet EB50 JMP Programm_Starten ; Near JMP; Wurde oben nicht gesprungen, wird das Programm beendet ...
[Bearbeiten] Nachher
... 80F814 CMP AL, 14h ; EB30 JMP Programm_Starten ; Jetzt wird das Programm immer gestartet, egal wie der Vergleich ausgeht EB50 JMP Programm_Beenden ; Es wurde nur ein Byte verändert, 72 --> EB ...
Dieses einfache Beispiel dient nicht als Anleitung, sondern soll nur die hinter dem Wort cracken steckende Technik verdeutlichen. Die Schwierigkeit liegt dabei, in vielen Tausenden von Befehlszeilen die passende Stelle zu finden. Auch Sprungmarken wie "Programm_Starten" aus dem Beispiel sind im Assembler-Code nicht zu finden, sondern eher Adressen wie z. B. JB 0404745h.
[Bearbeiten] Weblinks
- www.gamecopyworld.com
- www.megagames.com - Cracks für Spiele