Software-Cracking - Software cracking

Software-Cracking (in den 1980er Jahren vor allem als "Breaking" bekannt) ist die Modifikation von Software , um Funktionen zu entfernen oder zu deaktivieren, die von der Person, die die Software knackt, als unerwünscht angesehen werden, insbesondere Kopierschutzfunktionen (einschließlich Schutz gegen die Manipulation von Software, Seriennummer, Hardwareschlüssel, Datumsprüfungen und Disc-Prüfungen) oder Software-Ärgernisse wie Nörgler-Bildschirme und Adware .

Ein Crack bezieht sich auf das Mittel, um zum Beispiel eine gestohlene Seriennummer oder ein Werkzeug zu erreichen, das diesen Vorgang des Knackens durchführt. Einige dieser Tools werden Keygen , Patch oder Loader genannt . Ein Keygen ist ein handgefertigter Produktseriennummerngenerator, der oft die Möglichkeit bietet, funktionierende Seriennummern in Ihrem eigenen Namen zu generieren. Ein Patch ist ein kleines Computerprogramm, das den Maschinencode eines anderen Programms modifiziert. Dies hat für einen Cracker den Vorteil, dass er keine große ausführbare Datei in ein Release einbezieht, wenn nur wenige Bytes geändert werden. Ein Loader modifiziert den Startablauf eines Programms und entfernt den Schutz nicht, sondern umgeht ihn. Ein bekanntes Beispiel für einen Loader ist ein Trainer, der zum Cheaten in Spielen verwendet wird. Fairlight wies in einer ihrer .nfo- Dateien darauf hin, dass diese Art von Rissen für Veröffentlichungen von Warez-Szenenspielen nicht erlaubt sind . Ein Nuklearkrieg hat gezeigt, dass der Schutz zu keinem Zeitpunkt eingreifen darf, damit er ein gültiger Riss ist.

Die Verbreitung von gecrackten Kopien ist in den meisten Ländern illegal. Es gab Klagen wegen des Knackens von Software. Unter bestimmten Umständen kann es legal sein, gecrackte Software zu verwenden. Bildungsressourcen für Reverse Engineering und Software-Cracking sind jedoch legal und in Form von Crackme- Programmen verfügbar .

Geschichte

Der erste Software-Kopierschutz wurde auf Software für die Computer Apple II , Atari 800 und Commodore 64 angewendet . Softwarehersteller haben immer komplexere Methoden implementiert, um das unbefugte Kopieren von Software zu verhindern.

Auf dem Apple II steuerte das Betriebssystem im Gegensatz zu modernen Computern, die standardisierte Gerätetreiber verwenden, um die Gerätekommunikation zu verwalten, direkt den Schrittmotor, der den Diskettenlaufwerkskopf bewegt , und interpretierte auch direkt die Rohdaten, sogenannte Nibbles , die von jeder Spur gelesen wurden, um sie zu identifizieren die Datensektoren. Dies ermöglichte einen komplexen plattenbasierten Software-Kopierschutz, indem Daten auf Halbspuren (0, 1, 2,5, 3,5, 5, 6...), Viertelspuren (0, 1, 2,25, 3,75, 5, 6...) gespeichert wurden. ) und eine beliebige Kombination davon. Darüber hinaus mussten die Spuren keine perfekten Ringe sein, sondern konnten so unterteilt werden, dass Sektoren über sich überlappende versetzte Spuren gestaffelt werden konnten, wobei die extremste Version als Spiralverfolgung bekannt ist. Es wurde auch entdeckt, dass viele Diskettenlaufwerke keine feste Obergrenze für die Kopfbewegungen hatten und es manchmal möglich war, eine zusätzliche 36. Spur über die normalen 35 Spuren zu schreiben. Die Standardkopierprogramme von Apple II konnten solche geschützten Disketten nicht lesen, da das Standard-DOS davon ausging, dass alle Disketten ein einheitliches 35-Spur-, 13- oder 16-Sektor-Layout haben. Spezielle Nibble-Copy-Programme wie Locksmith und Copy II Plus können diese Disketten manchmal duplizieren, indem sie eine Referenzbibliothek bekannter Schutzmethoden verwenden; Wenn geschützte Programme geknackt wurden, wurden sie vollständig vom Kopierschutzsystem befreit und auf eine Standardformatdiskette übertragen, die jedes normale Apple II-Kopierprogramm lesen konnte.

Einer der Hauptwege zum Hacken dieser frühen Kopierschutzmaßnahmen bestand darin, ein Programm auszuführen, das den normalen CPU-Betrieb simuliert. Der CPU-Simulator bietet dem Hacker eine Reihe zusätzlicher Funktionen, z. B. die Möglichkeit, jeden Prozessorbefehl einzeln zu durchlaufen und die CPU-Register und geänderten Speicherbereiche während der Simulation zu untersuchen (jeder moderne Disassembler/Debugger kann dies tun). Der Apple II bot einen eingebauten Opcode-Disassembler, der es ermöglichte, Rohspeicher in CPU-Opcodes zu dekodieren, und dies würde verwendet werden, um zu untersuchen, was der Kopierschutz als nächstes tun würde. Generell stand dem Kopierschutzsystem kaum bis gar keine Abwehr zur Verfügung, da alle seine Geheimnisse durch die Simulation sichtbar gemacht werden. Da jedoch die Simulation selbst auf der Original-CPU laufen muss, zusätzlich zu der gehackten Software, läuft die Simulation selbst bei maximaler Geschwindigkeit oft extrem langsam.

Auf Atari 8-Bit-Computern war die häufigste Schutzmethode über "schlechte Sektoren". Dies waren Sektoren auf der Festplatte, die absichtlich vom Festplattenlaufwerk nicht gelesen werden konnten. Die Software würde beim Laden des Programms nach diesen Sektoren suchen und den Ladevorgang stoppen, wenn beim Zugriff auf diese Sektoren kein Fehlercode zurückgegeben wird. Es waren spezielle Kopierprogramme verfügbar, die die Festplatte kopieren und sich an fehlerhafte Sektoren erinnern. Der Benutzer könnte dann eine Anwendung verwenden, um das Laufwerk zu drehen, indem er ständig einen einzelnen Sektor liest und die Drehzahl des Laufwerks anzeigt. Wenn die Oberseite des Laufwerks entfernt ist, kann ein kleiner Schraubendreher verwendet werden, um die Drehzahl des Laufwerks unter einen bestimmten Punkt zu verlangsamen. Sobald das Laufwerk verlangsamt wurde, konnte die Anwendung bei Bedarf "schlechte Sektoren" schreiben. Danach wurde die Drehzahl des Laufwerks wieder auf den Normalwert erhöht und eine ungecrackte Kopie erstellt. Natürlich das Cracken der Software, um gute Sektoren für leicht kopierte Disketten zu erwarten, ohne sich in das Diskettenlaufwerk einmischen zu müssen. Im Laufe der Zeit wurden immer ausgefeiltere Methoden entwickelt, aber fast alle beinhalteten eine Form von fehlerhaften Plattendaten, wie beispielsweise einen Sektor, der aufgrund einer schlechten Datenausrichtung bei getrennten Zugriffen unterschiedliche Daten zurückgeben könnte. Es wurden Produkte verfügbar (von Firmen wie Happy Computers ), die das Controller-BIOS in Ataris "intelligenten" Laufwerken ersetzten. Diese aktualisierten Laufwerke ermöglichten es dem Benutzer, exakte Kopien des Originalprogramms mit Kopierschutz auf der neuen Festplatte zu erstellen.

Beim Commodore 64 wurden mehrere Methoden zum Schutz der Software verwendet. Für Software, die auf ROM-Cartridges verteilt wird , wurden Subroutinen aufgenommen, die versuchten, den Programmcode zu überschreiben. Wenn sich die Software im ROM befand, würde nichts passieren, aber wenn die Software in den RAM verschoben wurde , wäre die Software deaktiviert. Aufgrund des Betriebs von Commodore-Diskettenlaufwerken würde ein Schreibschutzschema dazu führen, dass der Diskettenlaufwerkskopf gegen das Ende seiner Schiene stößt, was dazu führen könnte, dass der Laufwerkskopf falsch ausgerichtet wird. In einigen Fällen waren gecrackte Versionen von Software wünschenswert, um dieses Ergebnis zu vermeiden. Ein falsch ausgerichteter Antriebskopf konnte sich selten durch Aufschlagen gegen die Schienenanschläge selbst reparieren. Ein weiteres brutales Schutzsystem war das Schleifen von Spur 1 bis 40 und zurück ein paar Mal.

Die meisten der frühen Software-Cracker waren Computer-Hobbyisten, die oft Gruppen bildeten, die beim Knacken und Verbreiten von Software gegeneinander antraten. Ein neues Kopierschutzsystem so schnell wie möglich aufzubrechen, wurde oft eher als Chance gesehen, seine technische Überlegenheit zu demonstrieren, als als Möglichkeit zum Geldverdienen. Einige gering qualifizierte Bastler nahmen bereits gecrackte Software und bearbeiteten darin verschiedene unverschlüsselte Textfolgen, um Nachrichten zu ändern, die ein Spiel einem Spieler mitteilen würde, was oft als vulgär angesehen wird. Das Hochladen der veränderten Kopien in Filesharing-Netzwerken sorgte für Lacher für erwachsene Benutzer. Die Cracker-Gruppen der 1980er Jahre begannen, für sich und ihre Fähigkeiten zu werben, indem sie animierte Bildschirme, sogenannte Crack-Intros, in die von ihnen geknackten und veröffentlichten Softwareprogramme einfügten. Nachdem sich der technische Wettbewerb von den Herausforderungen des Crackens auf die Herausforderungen des Erstellens visuell beeindruckender Intros ausgedehnt hatte, wurden die Grundlagen für eine neue Subkultur namens Demoszene gelegt . Die Demoszene begann sich in den 1990er Jahren von der illegalen "Warez-Szene" zu lösen und gilt heute als eine völlig andere Subkultur. Viele Software-Cracker haben sich später zu äußerst fähigen Software-Reverse-Ingenieuren entwickelt; die tiefe Kenntnis der Montage erforderlich , um Schutz zu knacken ermöglicht es ihnen, Reverse Engineering Treiber , um Port sie von binary-only Treiber für Windows - Fahrern mit Quellcode für Linux und andere freie Betriebssysteme. Auch weil Musik und Spieleintro ein so wesentlicher Bestandteil des Gamings waren, wurden das Musikformat und die Grafiken sehr beliebt, als die Hardware für den Heimanwender erschwinglich wurde.

Mit dem Aufkommen des Internets entwickelten Software-Cracker geheime Online-Organisationen. In der zweiten Hälfte der neunziger Jahre war die Website von Fravia eine der angesehensten Informationsquellen zum Thema " Rückgängigmachen des Softwareschutzes" .

Die meisten der bekannten oder "Elite"-Cracking-Gruppen machen Software-Cracks ausschließlich zum Respekt in der " Szene ", nicht zum Profit. Von dort aus werden die Cracks schließlich auf öffentliche Internet-Sites durchgesickert von Leuten/Crackern, die gut geschützte/sichere FTP-Release-Archive verwenden, die zu vollständigen Kopien gemacht und manchmal von anderen illegal verkauft werden.

Die Szene besteht heute aus kleinen Gruppen qualifizierter Leute, die informell um die besten Cracker, Cracking-Methoden und Reverse Engineering konkurrieren .

+HCU

Die High Cracking University (+HCU) wurde von Old Red Cracker (+ORC) gegründet, der als Genie des Reverse Engineering und als legendäre Figur in RCE gilt, um die Erforschung des Reverse Code Engineering (RCE) voranzutreiben . Er hat auch viele Aufsätze zu diesem Thema gelehrt und verfasst, und seine Texte gelten als Klassiker in diesem Bereich und sind Pflichtlektüre für Studierende des RCE.

Das Hinzufügen des "+"-Zeichens vor dem Spitznamen eines Reversers bedeutete die Mitgliedschaft in der +HCU. Unter den Studenten der +HCU waren die weltweit besten Windows-Reversierer. Die +HCU veröffentlichte jährlich ein neues Reverse-Engineering-Problem und eine kleine Anzahl von Befragten mit den besten Antworten qualifizierte sich für eine Bachelor-Stelle an der Universität.

+Fravia war Professor an der +HCU. Fravias Website war als "+Fravia's Pages of Reverse Engineering" bekannt und er benutzte sie, um Programmierer sowie die breitere Gesellschaft herauszufordern, die "Gehirnwäsche eines korrupten und grassierenden Materialismus" "zurückzuentwickeln". In seiner Blütezeit verzeichnete seine Website jährlich Millionen von Besuchern und ihr Einfluss war „weit verbreitet“.

Heutzutage sind die meisten Absolventen der +HCU zu Linux migriert und nur wenige sind als Windows-Umkehrer geblieben. Die Informationen an der Universität wurden von einer neuen Generation von Forschern und Praktikern des RCE wiederentdeckt, die neue Forschungsprojekte auf diesem Gebiet gestartet haben.

Methoden

Der häufigste Software-Crack ist die Änderung der Binärdatei einer Anwendung, um eine bestimmte Schlüsselverzweigung in der Programmausführung zu verursachen oder zu verhindern. Dies wird durch Reverse Engineering des kompilierten Programmcodes mit einem Debugger wie SoftICE , x64dbg , OllyDbg , GDB oder MacsBug erreicht, bis der Software-Cracker die Subroutine erreicht , die die primäre Methode zum Schutz der Software enthält (oder durch Disassemblieren einer ausführbaren Datei mit a Programm wie IDA ). Die Binärdatei wird dann unter Verwendung des Debuggers oder eines Hex-Editors oder -Monitors so modifiziert, dass ein vorheriger Verzweigungs- Opcode durch sein Komplement oder einen NOP- Opcode ersetzt wird, sodass die Schlüsselverzweigung entweder immer eine bestimmte Subroutine ausführt oder sie überspringt. Fast alle gängigen Software-Cracks sind eine Variation dieser Art. Proprietäre Softwareentwickler entwickeln ständig Techniken wie Codeverschleierung , Verschlüsselung und selbstmodifizierenden Code , um diese Modifikation immer schwieriger zu machen. Trotz dieser Maßnahmen haben Entwickler Schwierigkeiten, Software-Cracking zu bekämpfen. Dies liegt daran, dass Fachleute häufig eine einfache gecrackte EXE- oder Retrium-Installationsdatei zum öffentlichen Download veröffentlichen, sodass unerfahrene Benutzer die Software nicht selbst knacken müssen.

Ein konkretes Beispiel für diese Technik ist ein Crack, der die Ablauffrist aus einer zeitlich begrenzten Testversion einer Anwendung entfernt. Diese Cracks sind normalerweise Programme, die die ausführbare Programmdatei und manchmal die mit der Anwendung verknüpfte .dll oder .so ändern . Ähnliche Cracks gibt es für Software, die einen Hardware- Dongle erfordert . Ein Unternehmen kann auch den Kopierschutz von legal erworbenen, aber für eine bestimmte Hardware lizenzierten Programmen brechen , so dass keine Ausfallzeiten aufgrund von Hardwarefehlern drohen (und natürlich keine Notwendigkeit, sich auf die Ausführung der Software zu beschränken) nur auf gekaufter Hardware).

Eine andere Methode ist die Verwendung spezieller Software wie CloneCD , um nach einer kommerziellen Kopierschutzanwendung zu scannen. Nachdem die zum Schutz der Anwendung verwendete Software gefunden wurde, kann ein anderes Tool verwendet werden, um den Kopierschutz von der Software auf der CD oder DVD zu entfernen . Dadurch kann ein anderes Programm wie Alcohol 120% , CloneDVD , Game Jackal oder Daemon Tools die geschützte Software auf die Festplatte eines Benutzers kopieren. Beliebte kommerzielle Kopierschutzanwendungen, nach denen gescannt werden kann, sind SafeDisc und StarForce.

In anderen Fällen kann es möglich sein, ein Programm zu dekompilieren , um Zugriff auf den ursprünglichen Quellcode oder Code auf einer höheren Ebene als dem Maschinencode zu erhalten . Dies ist oft mit Skriptsprachen und Sprachen möglich, die die JIT- Kompilierung verwenden. Ein Beispiel ist das Knacken (oder Debuggen) auf der .NET-Plattform, wo man erwägen könnte, CIL zu manipulieren , um seine Bedürfnisse zu erfüllen. Javas Bytecode funktioniert auch auf ähnliche Weise, in der es eine Zwischensprache gibt, bevor das Programm kompiliert wird, um auf dem plattformabhängigen Maschinencode zu laufen .

Fortschrittliches Reverse Engineering für Schutzmaßnahmen wie SecuROM , SafeDisc , StarForce oder Denuvo erfordert einen Cracker oder viele Cracker, die viel mehr Zeit damit verbringen, den Schutz zu studieren, schließlich jeden Fehler im Schutzcode zu finden und dann ihre eigenen Tools zum "Auspacken" zu codieren. den Schutz automatisch vor ausführbaren (.EXE) und Bibliotheks- (.DLL) Dateien.

Es gibt eine Reihe von Sites im Internet, die es Benutzern ermöglichen, von Warez-Gruppen erstellte Cracks für beliebte Spiele und Anwendungen herunterzuladen (allerdings auf die Gefahr hin, bösartige Software zu erwerben, die manchmal über solche Sites verbreitet wird). Obwohl diese Cracks von legalen Käufern von Software verwendet werden, können sie auch von Personen verwendet werden, die unautorisierte Kopien heruntergeladen oder anderweitig erhalten haben (oft über P2P- Netzwerke).

Test zurücksetzen

Viele kommerzielle Programme, die aus dem Internet heruntergeladen werden können, haben eine Testphase (oft 30 Tage) und müssen nach Ablauf registriert (dh gekauft) werden, wenn der Benutzer sie weiterhin verwenden möchte. Um den Testzeitraum zurückzusetzen, werden Registrierungseinträge und/oder versteckte Dateien, die Informationen über den Testzeitraum enthalten, geändert und/oder gelöscht. Dazu entwickeln Cracker „ Trial Resetter “ für ein bestimmtes Programm oder manchmal auch für eine Gruppe von Programmen desselben Herstellers.
Eine Methode, Test-Resets weniger attraktiv zu machen, ist die Beschränkung der Software während der Testphase (zB sind einige Funktionen nur in der registrierten Version verfügbar; mit dem Programm erstellte Bilder/Videos/Hardcopys erhalten ein Wasserzeichen ; das Programm läuft nur 10 –20 Minuten und schließt sich dann automatisch). Einige Programme haben einen unbegrenzten Testzeitraum, sind jedoch bis zu ihrer Registrierung begrenzt.

Siehe auch

Verweise