Wie laufen Angriffe gegen geschützte Anwendungen ab?
Grundprinzipien der Angriffsmethoden
MemoryDumping
- Dumpen einer Anwendung aus dem RAM
- Patchen von OEP (Original Entry Point) und IAT (Import Address Table)
Emulatoren
- Dummy Treiber
- Record/ Playback Treiber
- Vollständiger Emulator / Analyse der Hardware
ACOB (A Couple Of Bytes) Patches
- Aufspüren und patchen von JZ, JNZ, ...
Angriffsmethoden und warum diese mit CodeMeter nicht funktionieren:
- Memory Dumping: CodeMeter nutzt
„On Demand Decryption“, d.h. zu keinem
Zeitpunkt sind das komplette Programm,
der Code und die Ressourcen, vollständig entschlüsselt
im Hauptspeicher des PC.
- Dummy Treiber: Durch Nutzung komplexer
Verschlüsselung ist eine Simulation des
CmSticks durch einen Dummy Treiber nicht
möglich, da es keine begrenzte Anzahl von
Antworten auf Funktionsaufrufe gibt.
- Cracking Tools: Viele der häufig
eingesetzten Cracking Tools werden von
dem geschützten Programm erkannt
und können die Lizenz in der Hardware
sperren, was weitere Angriffsversuche
unmöglich macht.
- Record-/Playback Treiber: Die Verwendung
zufällig variierender Verschlüsselungen
und die Änderung des Encryption
Codes zur Laufzeit machen ein vollständiges Aufzeichnen
und Wiedergeben unmöglich.
- Emulation des CmSticks: Die Verwendung
starker Kryptografie und Einsatz
sicherer Hardware, also eines SmartCard
Controllers, machen eine vollständige
Emulation fast unmöglich.
- Patchen einiger Bytes: Keine Verwendung
einfacher Abfragen sondern
Verschlüsselung großer Teile und Einsatz
der „automatischen Verschlüsselung“
(Envelope) machen dies unmöglich.
Das Wettbewerbsprogramm
Als Beispiel sehen Sie hier das Wettbewerbs-Programm
nach Starten, Laden und Entschlüsseln
mit dem passenden CmStick im Speicher des
PCs. Die grün schraffierten Bereiche sind noch
verschlüsselt. Die Ressourcen sind immer verschlüsselt und
werden nur zur Laufzeit dynamisch entschlüsselt,
die IAT (Import Address Table), die die
Verbindung zu den Betriebssystem-funktionen
herstellt, bleibt ebenso verschlüsselt wie einzelne
individuell verschlüsselte Funktionen. Im Falle
des Hacker´s Contests waren dies zwei Funktionen.
Ein Memory Dump würde hier, wie jeder
schnell versteht, nicht zum Erfolg führen.
Pressemeldung zum Hacker´s Contest 2007
|
|