Flussi di lavoro tipici
Tre modi comuni di configurare un progetto, da una sola applicazione a un insieme di librerie distribuite insieme.
Proteggere una sola applicazione
Usa questa procedura quando distribuisci un solo assembly, oppure un’applicazione di cui non vuoi unire le librerie.
Aggiungi l’applicazione
Trascina il file .exe o .dll sul canvas, oppure fai clic su + Aggiungi assembly.
Scegli un livello di protezione
Esegui Offuscamento: Imposta livello… dalla tavolozza comandi e scegli Bilanciato come punto di partenza. Apri il pannello delle proprietà per controllare il risultato, per esempio per scegliere un altro algoritmo di cifratura delle stringhe.
Conserva un file map
Seleziona Scrive la sua map di rinomina nel gruppo File map del pannello delle proprietà . Con la mappa puoi decodificare nel Decodificatore stack gli stack trace che ti inviano i tuoi clienti. Conserva la mappa insieme alla build, non insieme all’applicazione.
Esegui e verifica
Fai clic su Esegui progetto. Controlla la scheda Problemi del pannello Attività e il punteggio di offuscamento nel riquadro del target. Poi avvia l’applicazione protetta con Esegui > Avvia app offuscata (Ctrl+F5, Cmd+F5 su macOS) e provala.
Se l’applicazione usa reflection, serializzazione o data binding basati sui nomi, alcuni simboli devono mantenere il proprio nome. Escludili con le regole XML nella scheda Regole XML, oppure con l’attributo Obfuscation nel tuo codice.
Unire le librerie all’eseguibile principale
Usa questa procedura per distribuire un solo file invece di un eseguibile e delle sue librerie private. Con Internalize attivato, i tipi uniti diventano interni, così anche i loro nomi possono essere offuscati. Vedi Unione di assembly.
Aggiungi tutti gli assembly
Aggiungi l’eseguibile e le librerie che vuoi unire, tutti come target.
Esegui la configurazione dell’unione
Esegui Offuscamento: Imposta unione nell’assembly principale dalla tavolozza comandi, oppure fai clic su Imposta unione nella griglia. Le librerie diventano input da unire dell’eseguibile. Un assembly che il motore non può unire resta un target separato.
Controlla il grafo
Sul canvas, le librerie sono collegate all’eseguibile con linee etichettate UNISCI. Nella griglia, l’eseguibile è l’unica riga e il conteggio indica, per esempio, 1 assembly · 4 in merge. Apri la scheda Input della sua riga per vedere i file uniti.
Imposta la protezione ed esegui
Scegli un livello per l’eseguibile ed esegui il progetto. La cartella di output contiene un solo assembly.
Per memorizzare una libreria all’interno dell’eseguibile come risorsa invece di unirne il codice, cambia il suo tipo in Incorpora nella scheda Input o nel popover della dipendenza. Vedi Dipendenze.
Offuscare un insieme di librerie con ridenominazione pubblica
Usa questa procedura quando distribuisci piĂą assembly che si chiamano a vicenda, per esempio un framework e le applicazioni costruite su di esso, e vuoi rinominare anche la loro API pubblica. Ogni assembly deve usare i nuovi nomi degli altri, quindi i target si scambiano le mappe di ridenominazione.
Aggiungi gli assembly
Aggiungi come target ogni libreria e ogni applicazione che le usa.
Collega i target che si usano a vicenda
Per ogni libreria, trascina dal suo ancoraggio destro all’ancoraggio sinistro di un target che la chiama e scegli Passa il file di map. La libreria ora viene eseguita per prima e scrive la sua mappa, e il target che la usa legge la mappa.
Esegui la configurazione pubblica
Esegui Offuscamento: Imposta offuscamento pubblico (tutti gli assembly), oppure fai clic su Imposta offuscamento pubblico nella griglia. Ogni target riceve la regola obfuscate public e scrive la propria mappa di ridenominazione. I target che hanno un altro target tra le proprie dipendenze ricevono automaticamente il collegamento map.
Controlla l’ordine
Nella griglia, aggiungi le colonne Flusso · Passo ed Esegui dopo e attiva Raggruppa per flusso. Ogni libreria precede i target che leggono la sua mappa.
Esegui
Esegui il progetto. Conserva tutti i file map dell’esecuzione: ti servono per decodificare gli stack trace e per offuscare una build successiva di un’applicazione rispetto alla stessa versione di una libreria.



Un’applicazione che legge la mappa della sua libreria
Quando una libreria è stata offuscata in una build precedente e non fa parte del progetto, aggiungi la sua mappa con Aggiungi file di map… sotto Altri file di map nel pannello delle proprietà di ogni target che la usa. Vedi Ridenominazione cross-assembly.
Le mappe di ridenominazione e i file delle statistiche contengono i nomi originali del tuo codice. Conservali insieme ai dati delle tue build e non distribuirli mai con l’applicazione.
Compilare il progetto fuori da Babel Desktop
Un progetto salvato da Babel Desktop è un file MSBuild. Quando funziona come vuoi, compilalo su un server di build con il task MSBuild; gli archi di flusso e i collegamenti map vengono salvati come dipendenze tra target, quindi MSBuild esegue i target nello stesso ordine.