KEYnote 34 Deutsch - Ausgabe Herbst 2017 | Page 5

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