Skip to Content
Nuova versione 12 disponibile 🎉
ObfuscatorProtezione dal debug

Protezione dal debug

Iniettando nel tuo assembly il codice di protezione dal debug, Babel Obfuscator può prendere contromisure quando viene collegato un debugger, per esempio terminare l’applicazione o eseguire una logica personalizzata. Questa funzionalità è una difesa importante contro il reverse engineering e l’accesso non autorizzato al tuo codice, e tutela l’integrità e la riservatezza del tuo software.

Configurare la protezione dal debug

Per abilitare con Babel Obfuscator la protezione dal debug e configurare un’azione personalizzata da eseguire quando viene rilevato un debugger, segui questi passi.

Riga di comando

Aggiungi l’opzione --antidebugging alla riga di comando di Babel quando offuschi il tuo assembly. Per esempio:

babel myapp.exe --antidebugging

Task Babel di MSBuild

Se usi il task Babel, aggiungi l’attributo DebuggingProtection="true" alla tua configurazione. Per esempio:

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

Azione personalizzata al rilevamento di un debugger

Per personalizzare la reazione al rilevamento di un debugger nel tuo assembly, aggiungi a una classe esistente il seguente metodo, che definisce l’azione personalizzata da eseguire quando viene rilevato un debugger:

[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 }

Quando l’applicazione è in esecuzione e viene rilevato un debugger, viene chiamato il metodo OnDebuggerDetected(). In questo metodo puoi inserire la logica personalizzata che preferisci. È importante che il codice all’interno di OnDebuggerDetected() sia thread-safe, perché quando viene rilevato un debugger può essere chiamato più volte e da thread diversi.

Ecco un esempio di come potrebbe presentarsi il codice in un’applicazione C#:

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 // ... } }

Nell’esempio precedente, quando viene rilevato un debugger l’applicazione termina con codice di uscita 0 e mostra nella console il messaggio “Debugger detected! Terminating application…”. Puoi sostituire questa azione personalizzata con qualsiasi comportamento desideri, per esempio scrivere nel log, mostrare un messaggio di errore o adottare altre misure difensive.

Last updated on