und dynamischen( durch AxEngine beim Laden) Modifikationen Ihrer ausführbaren Dateien. Dabei werden bekannte Muster wie Aufrufe von Windows-API-Funktionen erkannt und verändert. Diese Veränderung wird so durchgeführt, dass sie von automatischen Dumpingund Rekonstruktions-Tools nur extrem aufwändig rückgängig gemacht werden kann.
Die meisten dieser Methoden sind für Windows implementiert, was der Tatsache Rechnung trägt, dass die meisten Hacker-Tools ebenfalls auf Windows-Plattformen verfügbar sind.
IxProtector für dynamische Entschlüsselung zur Laufzeit
IxProtector ist die dritte Schutzschicht zum Schutz Ihrer Anwendung gegen Memory-Dumps. Sie definieren einzelne Funktionen, die ganz analog zu den Ressourcen verschlüsselt im Speicher liegen bleiben. Über die Funktionen WupiDecryptCode und WupiEncryptCode können Sie selber implementieren, wann die einzelnen Funktionen entschlüsselt und wieder verschlüsselt werden.
Die einzelnen Funktionen liegen in einem Memory-Dump dann in der Regel auch weiterhin verschlüsselt vor. Um einen vollständig lauffähigen Hack zu erzeugen, müssten hier vom Hacker viele Puzzleteile manuell zusammengesetzt werden. Durch eine Erhöhung der Anzahl der verschlüsselten Funktionen und eine dynamische Entschlüsselung zur Laufzeit können Sie den Schutzlevel selbstständig steigern.
IxProtector ist für Windows, Linux x86 / x64 / ARM und macOS verfügbar.
Fallen zur Verhinderung von statischer Analyse
Ein Angreifer könnte vor dem Dumping oder auch im erzeugten Dump auf die Idee kommen, alle verschlüsselten Funktionen manuell zu entschlüsseln.
Zum einen benötigt er dazu die passenden Lizenzen dieser Funktionen. Unterschiedliche Lizenzen besitzen im CodeMeter-Universum auch unterschiedliche Schlüssel – ein weiteres Alleinstellungsmerkmal von CodeMeter. Wenn einzelne Funktionen verschiedenen Lizenzen zugeordnet sind, können diese auch mit unterschiedlichen Schlüsseln verschlüsselt werden. Ein Hacker müsste alle Schlüssel besitzen.
Zum anderen: Auch wenn ein Hacker alle Schlüssel besitzt, bietet IxProtector mit Fallen als vierter Schutzschicht eine perfekte Lösung, um ein systematisches Entschlüsseln aller
Funktionen zu verhindern. Sie fügen in Ihre Anwendung Funktionen ein, die nie aufgerufen werden. Der Anfang der Funktion wird durch einen Sperrcode ersetzt. Entschlüsselt ein Hacker solch eine Funktion( weil er alle Funktionen entschlüsseln will), sperrt sich seine Lizenz und eine Entschlüsselung weiterer Funktionen ist erst nach Freischaltung durch Sie als Hersteller wieder möglich – ein effektiver Mechanismus, vor allem für CmDongles.
Translocated Execution als ultimativer Schutz
Translocated Execution ist die fünfte und ultimative Schutzschicht zum Schutz gegen Memory-Dumps. Neben dem höheren Schutz bietet Translocated Execution einen Automatismus, der die Integration von IxProtector deutlich vereinfacht.
Translocated Execution ist eine Erweiterung von IxProtector. Im Gegensatz zum Standard-IxProtector werden die Funktionen aber nicht am originalen Platz entschlüsselt und ausgeführt, sondern an einer anderen Stelle im Speicher. Die gleiche Stelle wird für mehrere verschiedene Funktionen verwendet, die nacheinander benötigt werden. Das Puzzlespiel für den Hacker wird damit deutlich komplexer, da eine Zuordnung, an welche Stelle welche Teile passen, umso schwieriger wird – ein Puzzle mit Teilen, die sich in der Form ändern. Außerdem wird die Stelle, an der sich der entschlüsselte Code befindet, von den meisten Dumping-Tools ignoriert.
Für die Entschlüsselung stehen Ihnen zwei Modi zur Verfügung:
Bei der automatischen Entschlüsselung müssen Sie sich nicht um die Entschlüsselung kümmern. AxProtector fügt den Entschlüsselungs-Code automatisch an die Stelle ein, an der sich die originale Funktion befunden hat. Ein Modus mit Cache bietet die Option, die Funktion für eine kurze Zeit in einem Cache zu halten, bevor sie automatisch verworfen wird. Ohne Cache wird die Funktion sofort nach der Benutzung aus dem Speicher entfernt bzw. mit anderen Daten überschrieben.
Für mehr Kontrolle und für den Fall, dass die originale Funktion zu klein ist, können Sie die Funktionen wie beim Standard-IxProtector mit WupiDecryptCode und WupiEncryptCode selber entschlüsseln bzw. aus dem Cache entfernen. Die Auswahl des Modus kann individuell für jede Funktion getroffen werden.
Translocated Execution ist für Windows, Linux x86 / x64 und macOS verfügbar.
High-Level-Programmiersprachen Für High-Level-Programmiersprachen wie. NET und Java stehen mit AxProtector. NET und AxProtector Java zwei speziell für diese Anwendungsfälle zugeschnittene Werkzeuge zur Verfügung. In diesem Fall ist die Trennung zwischen AxProtector und den Methoden von Ix- Protector fließend. Methoden, Funktionen und Klassen werden dynamisch zur Laufzeit entschlüsselt. Fallen stehen ebenso zur Verfügung. Bei. NET erfolgt die Entschlüsselung automatisch an einer anderen Stelle im Speicher.
Zusammenfassung Die Verwendung von CodeMeter Protection Suite schützt Ihre Software effektiv gegen Memory-Dumping. Mit IxProtector und Translocated Execution stehen Ihnen zwei Methoden zur Verfügung, die einfach zu integrieren sind und zusätzliche Schutzschichten bereitstellen, um Ihre Anwendung schützen.
5