Ein CrackMe ist ein Computerprogramm, das eine Zugriffskontrolle enthält, die dazu gedacht ist, umgangen zu werden.[1] Ein solches Programm fragt – meist direkt beim Start – ein Passwort oder eine Seriennummer ab. Ziel ist es diesen Schutzmechanismus auszuhebeln. Daneben besteht ein CrackMe meist nur aus einem kurzen oft witzigen Text oder einem Bild, welches nach einem erfolgreichen Angriff angezeigt wird.

HintergrundBearbeiten

CrackMes zu knacken ist eine Art „Sport“ beim Reverse Engineering.[1] Sie bieten ein legales Betätigungsfeld für das Reverse Engineering, das bei kommerziellen Programmen aus juristischer Sicht problematisch und bei quelloffenen-Programmen uninteressant ist. So gibt es dedizierte Webseiten, die CrackMes in verschiedenen Schwierigkeitsgraden und dazugehörigen Hilfestellungen in Form von Tutorials anbieten.[1][2]

Mögliche „Lösungen“ für ein CrackMe können sehr unterschiedlich ausfallen:

  • ein gültiges Passwort bzw. eine gültige Seriennummer finden
  • das Programm so abzuändern (siehe Patch), dass es jede beliebige Seriennummer akzeptiert oder gar nicht erst abgefragt wird
  • ein Programm schreiben, welche genau solche Seriennummern produziert, die vom CrackMe akzeptiert werden (siehe KeyGen)

Beim Knacken eines CrackMes kommen Tools wie Disassembler und Debugger zum Einsatz, da der Quelltext eines CrackMes üblicherweise bewusst nicht zur Verfügung gestellt wird. Deshalb werden die meisten CrackMes auch in kompilierenden Programmiersprachen geschrieben und nur in ihrer binären Form angeboten. Die Herausforderung bei CrackMes entsteht durch für Menschen schwierig zu lesenden verschleierten Quellcode.

TypenBearbeiten

CrackMes können in unterschiedliche Typen unterteilt werden.

KeygenMeBearbeiten

Bei diesen CrackMes besteht die Aufgabe darin, einen Schlüsselgenerator zu erstellen. Dies unterscheidet sich von einem normalen CrackMe dadurch, dass in der Regel interessante kryptographische Algorithmen verwendet werden müssen und Kenntnisse über Kryptographie- und Verschlüsselungsalgorithmen erforderlich sind, um ein Keygen zu erstellen.[3]

ReverseMeBearbeiten

Hierbei handelt es sich um CrackMes, die Anwendungsdatei so zu manipulieren, dass sie eine gewünschte Information, wie beispielsweise einen Code, ausgibt oder eine andere Information anzeigt. ReverseMes gehen über die Verwendung kryptographischer Algorithmen zum Schutz der Anwendung vor Analyse hinaus; sie verwenden viele Techniken, um die Änderung der Anwendungsdatei zu erschweren.[4]

UnpackMeBearbeiten

Eine etwas andere Form von CrackMe, bei der eine Datei, die mit einem maßgeschneiderten oder kommerziellen Exe-Packer oder Exe-Protector komprimiert, geschützt oder verschleiert wurde. Ziel ist es, die Datei zu entpacken, d. h. die ursprüngliche Form der ausführbaren Datei wiederherzustellen. Meistens geht es darum, die Importtabelle neu zu erstellen, den ursprünglichen Code wiederherzustellen und die ausführbare Dateistruktur neu aufzubauen, damit die Datei ausgeführt werden kann.[4]

Siehe auchBearbeiten

EinzelnachweiseBearbeiten

  1. a b c CrachMes.de:Frequently Asked Questions (Memento vom 14. Juli 2006 im Internet Archive)
  2. CrackMes auf tdhack.com
  3. STEM Cyber Challenge 2018: Keygenme. 21. April 2018, abgerufen am 19. Mai 2019 (englisch).
  4. a b How to write a CrackMe for a CTF competition. Juli 2016, abgerufen am 19. Mai 2019 (englisch).