Resistenza al deoffuscamento
Poiché i punti di chiamata riscritti non fanno più riferimento diretto alle loro destinazioni e la codifica varia da una build all’altra, gli strumenti di deoffuscamento automatico non possono ricavare il grafo delle chiamate originale con l’analisi statica. Il proxy dinamico di Babel viene verificato regolarmente contro i principali strumenti open source di deoffuscamento per .NET: i loro resolver delle chiamate proxy non recuperano nessuna delle chiamate tramite proxy, e l’output ripulito non ricostruisce le chiamate dirette originali.
Combinare il proxy dinamico con la ridenominazione dei simboli, l’offuscamento del flusso di controllo e il rilevamento delle manomissioni aumenta ulteriormente lo sforzo necessario per il reverse engineering di un assembly protetto.
Procedure consigliate
- Proteggi ciò che conta. Usa i filtri per applicare il proxy al flusso di chiamate sensibile (licenze, controlli di sicurezza, algoritmi proprietari) invece che a tutte le chiamate: così massimizzi la protezione e riduci al minimo l’impatto su dimensioni e avvio.
- Scegli la modalità giusta.
externalè un’opzione leggera che contrasta soprattutto il recupero dei nomi delle variabili e l’inferenza dei tipi nei decompilatori;alloffre l’offuscamento più forte del flusso di chiamate per la logica interna (vedi Chiamate interne ed esterne). - Combina le funzionalità . Il proxy dinamico dà il meglio insieme alla ridenominazione, all’offuscamento del flusso di controllo e al rilevamento delle manomissioni.
- Disabilitalo sui target AOT. Imposta
DynamicProxy=falseper gli assembly .NET MAUI e Blazor (vedi Limitazioni di compatibilità con AOT e piattaforme). - Verifica dopo la build. Esegui la tua suite di test sull’assembly offuscato, come faresti per qualsiasi impostazione di protezione.
Grazie alla protezione con proxy dinamico di Babel Obfuscator puoi aumentare in modo significativo la sicurezza della tua applicazione, nascondendo le chiamate ai metodi e complicando il processo di reverse engineering.