Skip to Content
Neue Version 12 verfügbar 🎉
ObfuscatorAllgemeine BeispieleBabel-Verschleierung erkennen

Babel-Verschleierung erkennen

Babel Obfuscator ist ein Tool, das sich im Umfeld von .NET-Assemblys einen Namen gemacht hat, vor allem weil es sie widerstandsfähiger gegen Reverse Engineering macht. Im Kern verschleiert Babel nicht nur Symbolnamen, sondern geht tiefer und verändert den Code der Assembly.

Diese Transformation ist der zentrale Ansatzpunkt für alle, die feststellen möchten, ob eine Assembly mit Babel verschleiert wurde. Bei dieser Untersuchung ist die Bibliothek Mono.Cecil  eine wertvolle Hilfe. Sie erleichtert die Inspektion und Analyse von .NET-Assemblys: Mit ihr lassen sich die Metadaten der Assembly untersuchen und Änderungen finden, die die Handschrift von Babel tragen.

Babel Obfuscator verwendet ein eigenes Umbenennungsschema und bildet die verschleierten Namen häufig aus nicht lesbaren Unicode-Zeichen oder ASCII-Zeichenfolgen. Wer diese Symbolnamen untersucht und die für die Umbenennungsstrategie von Babel typischen Muster erkennt, kann feststellen, ob die Assembly verschleiert wurde.

Sind außerdem die Verschlüsselungsfunktionen von Babel eingeschaltet, wird der Assembly ein Modulinitialisierer hinzugefügt. Dieser Initialisierer richtet Code ein und entschlüsselt Daten, die Babel Obfuscator verborgen hat. Sein Vorhandensein ist häufig ein deutliches Zeichen dafür, dass Babel beteiligt war.

Der vielleicht direkteste Hinweis auf Babel ist jedoch das Attribut BabelObfuscationAttribute. Ist Babel so konfiguriert, dass es dieses Attribut in eine verschleierte Assembly aufnimmt, bestätigt sein Nachweis nahezu zweifelsfrei, dass Babel die Verschleierung vorgenommen hat.

Wer es lieber praktisch ausprobiert, findet auf GitHub ein Beispielprojekt, das diese Erkennung veranschaulicht.

git clone https://github.com/babelfornet/check-obfuscation-example.git

Wechseln Sie in das Repository und öffnen Sie die .sln-Datei in Visual Studio. Ist alles vorbereitet, können Sie das Projekt kompilieren und ausführen.

Dieses Beispielprojekt kompiliert eine CLI-Anwendung, die prüft, ob Assemblys verschleiert sind. Die Verwendung ist einfach:

Usage: CheckObfuscation.exe <file|directory>

Dabei bezeichnet file die Assembly-Datei, die Sie prüfen möchten, und directory das Verzeichnis, das nach Assemblys durchsucht werden soll.

Mit diesen Tools und Kenntnissen erkennen Sie die verräterischen Anzeichen der Babel-Verschleierung in jeder .NET-Assembly.

Last updated on