Skip to Content
Neue Version 12 verfügbar 🎉
ObfuscatorDebugging-Schutz

Debugging-Schutz

Babel Obfuscator kann Code für den Debugging-Schutz in Ihre Assembly einfügen und so aktiv reagieren, wenn ein Debugger angehängt wird, etwa indem die Anwendung beendet oder benutzerdefinierte Logik ausgeführt wird. Diese Funktion ist eine wichtige Verteidigung gegen Reverse Engineering und unbefugten Zugriff auf Ihren Code und schützt die Integrität und Vertraulichkeit Ihrer Software.

Debugging-Schutz konfigurieren

Um mit Babel Obfuscator den Debugging-Schutz einzuschalten und eine benutzerdefinierte Aktion für den Fall festzulegen, dass ein Debugger erkannt wird, gehen Sie wie folgt vor.

Befehlszeile

Fügen Sie der Babel-Befehlszeile den Schalter --antidebugging hinzu, wenn Sie Ihre Assembly verschleiern. Zum Beispiel:

babel myapp.exe --antidebugging

MSBuild-Aufgabe Babel

Wenn Sie die Babel-Aufgabe verwenden, fügen Sie Ihrer Konfiguration das Attribut DebuggingProtection="true" hinzu. Zum Beispiel:

<Babel InputFile="$(AppName).exe" DebuggingProtection="true" ... />

Benutzerdefinierte Aktion bei erkanntem Debugger

Um die Reaktion auf einen in Ihrer Assembly erkannten Debugger anzupassen, fügen Sie einer vorhandenen Klasse die folgende Methode hinzu. Sie definiert die benutzerdefinierte Aktion, die ausgeführt wird, wenn ein Debugger erkannt wird:

[Obfuscation(Feature = "on debugger detected method")] static void OnDebuggerDetected() { // Custom logic to be executed when a debugger is detected // This code must be thread-safe as it can be called by different running threads }

Wenn die Anwendung läuft und ein Debugger erkannt wird, wird die Methode OnDebuggerDetected() aufgerufen. In dieser Methode können Sie Ihre eigene Logik unterbringen. Achten Sie darauf, dass der Code in OnDebuggerDetected() threadsicher ist, da die Methode bei erkanntem Debugger mehrfach und von verschiedenen Threads aufgerufen werden kann.

So kann der Code in einer C#-Anwendung aussehen:

using System; using System.Reflection; public class Program { [Obfuscation(Feature = "on debugger detected method")] static void OnDebuggerDetected() { // Custom action to be executed when a debugger is detected Console.WriteLine("Debugger detected! Terminating application..."); Environment.Exit(0); } static void Main() { // Your application's main logic // ... } }

Im obigen Beispiel wird die Anwendung mit dem Exitcode 0 beendet, wenn ein Debugger erkannt wird, und gibt in der Konsole die Meldung „Debugger detected! Terminating application…“ aus. Sie können diese benutzerdefinierte Aktion durch jedes gewünschte Verhalten ersetzen, etwa Protokollierung, die Anzeige einer Fehlermeldung oder andere Abwehrmaßnahmen.

Last updated on