Skip to Content
Nuova versione 12 disponibile 🎉
ObfuscatorIntroduzione

Babel Obfuscator

Babel Obfuscator protegge gli assembly .NET dal reverse engineering, da .NET Framework 2.0 a .NET 10, su target desktop, mobile, web e server. Rinomina, cifra e ristruttura il codice compilato, così che ciò che un decompilatore recupera non valga più la pena di essere letto.

Perché offuscare il codice .NET

Il software scritto nei linguaggi .NET come C#, VB.NET e F# viene compilato in MSIL (Microsoft Intermediate Language), un set di istruzioni indipendente dalla CPU memorizzato nell’assembly insieme a metadati dettagliati: nomi dei tipi, firme dei membri, valori letterali stringa e attributi. Insieme permettono ai decompilatori liberamente disponibili di ricostruire un codice sorgente vicino all’originale, in pochi secondi e senza competenze particolari.

L’offuscamento trasforma l’assembly compilato in modo che questa ricostruzione non sia più utile. Babel Obfuscator rinomina i simboli, cifra stringhe, costanti e risorse, riscrive il flusso di controllo dei metodi e può cifrare interi corpi di metodo per eseguirli in una macchina virtuale gestita. L’applicazione si comporta esattamente come prima; il codice che un attaccante recupera, no.

Novità della versione 12.0

La versione 12.0 rafforza Babel contro il deoffuscamento automatico, estende il rilevamento delle manomissioni al mobile e apre il prodotto agli assistenti AI.

Le versioni che hanno preceduto la 12.0 hanno portato altro: la versione 11.8 ha aggiunto un decifratore AES gestito che permette agli assembly protetti di avviarsi sugli host in modalità FIPS, un offuscamento molto più veloce degli assembly di grandi dimensioni e l’esempio Associazione a dongle hardware; la versione 11.7 ha introdotto la riga di comando compatibile con l’AI.

Il badge Ultimate

Alcuni titoli di questo manuale riportano questo contrassegno: Ultimate. Indica che la funzionalità è disponibile dall’edizione Ultimate di Babel Obfuscator in su; passando il puntatore sul badge compare la stessa informazione.

Babel Obfuscator è disponibile in due edizioni. Enterprise è una licenza per singolo utente per Windows, con lo strumento da riga di comando e il task MSBuild del pacchetto zip per .NET Framework (babel_net472). Ultimate è una licenza per sede che funziona su Windows, Linux e macOS su un numero qualsiasi di computer e aggiunge Babel Desktop, i pacchetti NuGet, l’integrazione con i server di build, il plugin Babel Encrypt e le protezioni introdotte nella 12.0 per l’edizione Ultimate: Chained State, la cifratura delle stringhe STREAM e il rilevamento delle manomissioni basato sull’integrità del pacchetto per Android e iOS. Le edizioni di Babel Licensing, Server e Data Center, includono Babel Obfuscator Ultimate, quindi ogni funzionalità con il badge è disponibile anche con queste edizioni; alcune funzioni legate alle licenze, come gli strumenti del server MCP per le licenze, sono specifiche di queste due edizioni e la loro pagina lo indica.

Un titolo senza badge descrive una funzionalità di entrambe le edizioni. La tabella completa, con i prezzi, è nella pagina Confronta le edizioni .

Funzionalità di protezione

Ogni funzionalità può essere abilitata separatamente e regolata per singolo simbolo con le regole di offuscamento, così puoi applicare le trasformazioni più forti solo dove si trova la proprietà intellettuale.

Ridenominazione dei simboli

Rinomina namespace, tipi, membri e parametri con nomi privi di significato, in ASCII o Unicode, tenendo conto di XAML/BAML e con file map cross-assembly.

Cifratura delle stringhe

Cifra i valori letterali stringa con gli algoritmi XOR, HASH o STREAM, oppure collega un tuo algoritmo.

Offuscamento del flusso di controllo

Inserisci diramazioni opache, riscrivi le condizioni e appiattisci i metodi attorno a dispatcher, fino all’algoritmo Chained State dell’edizione Ultimate.

Cifratura del codice

Cifra i corpi dei metodi ed eseguili nella Babel Virtual Machine gestita. Conservali in file esterni o proteggili con password per le licenze basate sulle funzionalità.

Proxy dinamico

Instrada le chiamate ai metodi esterni e interni attraverso proxy generati, così le vere destinazioni delle chiamate scompaiono dall’IL.

Cifratura delle risorse

Comprimi e cifra le risorse incorporate, decifrate su richiesta in fase di esecuzione.

Cifratura di valori e array

Nascondi le costanti numeriche inline e gli inizializzatori di array, come chiavi e tabelle di ricerca.

Protezione dal debug

Rileva un debugger collegato e termina il processo, oppure esegui un tuo gestore.

Rilevamento delle manomissioni

Verifica l’hash dell’immagine su desktop e la firma o l’identità del pacchetto su Android e iOS, poi termina o reagisci con codice personalizzato.

Unione e incorporamento

Integra le dipendenze in un solo assembly, oppure incorporale come risorse cifrate, per una distribuzione in un unico file con una superficie esposta più ridotta.

Ottimizzazioni

Rimuovi il codice inutilizzato, sigilla le classi, elimina gli attributi ed espandi inline i membri di piccole dimensioni per ridurre i metadati e velocizzare il caricamento.

Regole di offuscamento

Regola con precisione ogni funzionalità con regole XML e attributi personalizzati, con il supporto dell’Agent di analisi che mantiene funzionanti reflection e serializzazione.

Progettato per i flussi di lavoro assistiti dall’AI

Babel considera gli assistenti AI operatori a pieno titolo del prodotto, a due livelli.

Server MCP di Babel. Babel Desktop può esporre un endpoint MCP  sul computer locale. Claude Code, o qualsiasi client che usa il Model Context Protocol, opera allora sull’applicazione come faresti tu: crea progetti, aggiunge assembly, scrive regole, sceglie che cosa unire o incorporare, avvia l’offuscamento, legge avvisi e statistiche, decodifica gli stack trace, crea temi e fa screenshot per controllare il proprio lavoro. Nelle edizioni Server e Data Center lo stesso server gestisce il database delle licenze. Il server è disattivato per impostazione predefinita. Attivalo con Abilita il server di automazione in Impostazioni > MCP. È in ascolto solo su loopback e può richiedere un token di accesso. Copia comando Claude Code, nella stessa pagina, ti fornisce il comando di registrazione. Vedi Server MCP.

Register Babel Desktop with Claude Code
claude mcp add --transport http babel-obfuscator http://127.0.0.1:8765/mcp \ --header "X-Babel-Token: paste-the-token-from-settings-mcp"

Riga di comando compatibile con l’AI. Dalla versione 11.7 lo strumento da riga di comando può emettere un flusso di output strutturato e con versione per le pipeline di CI e gli agenti: --format=json o --format=ndjson fanno passare stdout allo schema babel.cli.v1, --quiet fa terminare subito con un errore le esecuzioni non presidiate invece di chiedere un input, e --strict-exit attiva i codici di uscita semantici. La stessa opzione rende --help e --version leggibili dalle macchine, così un agente può scoprire da solo ogni opzione. Vedi Modalità CLI compatibile con l’AI.

Babel Licensing ha un proprio server MCP per il Licensing Service ospitato, così un assistente può gestire clienti, licenze e attivazioni tramite l’API REST. Vedi Integrazione AI con Babel Licensing nel manuale di Babel Licensing.

Piattaforme e framework

AreaSupporto
Host di buildWindows, con lo strumento da riga di comando e il task MSBuild dei pacchetti zip; Linux, macOS e server di build per la CI tramite i pacchetti NuGet di Babel e lo strumento dotnet (edizione Ultimate); Babel Desktop su Windows, macOS e Linux (edizione Ultimate)
Runtime di destinazione.NET 10 e tutte le versioni precedenti di .NET e .NET Core, .NET Framework dalla 2.0 alla 4.8, .NET Standard, Mono
Modelli di applicazioneDesktop (WPF, Windows Forms, Avalonia), .NET MAUI su Android e iOS, Xamarin, Blazor, ASP.NET Core, UWP, nanoFramework
LinguaggiC#, compreso C# 14, VB.NET e F#
Modalità di pubblicazioneDipendente dal framework, autonoma, a file singolo, con trimming e NativeAOT

L’offuscamento lavora sull’IL, quindi un host di build su un sistema operativo può proteggere assembly pubblicati per qualsiasi identificatore di runtime. La ridenominazione dei simboli, la cifratura delle stringhe STREAM e l’offuscamento del flusso di controllo, compreso Chained State, superano inalterati il trimming e NativeAOT. Le funzionalità che richiedono un’immagine mappata in memoria o IL dinamico, come la cifratura del codice, il proxy dinamico e il controllo delle manomissioni per desktop, hanno limiti documentati sui target MAUI, Blazor e AOT; la pagina di ogni funzionalità li indica.

Come si esegue

L’edizione Ultimate e le edizioni di Babel Licensing includono i pacchetti NuGet, quindi Babel viene eseguito come strumento dotnet su Windows, Linux e macOS e all’interno delle build in stile SDK. Babel Desktop esegue il motore su .NET 10, quindi anche per offuscare in Babel Desktop serve una di queste edizioni. L’edizione Enterprise fornisce lo strumento da riga di comando per Windows e il task MSBuild del pacchetto zip per .NET Framework.

Passi successivi

Last updated on