Condividi tramite


Guida introduttiva all'interfaccia utente grafica autonoma

In questa sezione viene descritto come utilizzare l'interfaccia utente grafica autonoma di Dotfuscator. Per una guida completa all'interfaccia utente di Dotfuscator, vedere Informazioni di riferimento sull'interfaccia utente grafica (GUI).

Passaggio 1 - Avvio dell'interfaccia utente grafica di Dotfuscator

  • Fare clic su Start | Programmi | PreEmptive Solutions | Dotfuscator Professional Edition 4.0 | Dotfuscator.
  • Viene visualizzata la finestra di dialogo delle informazioni su Dotfuscator Professional. Per proseguire, fare clic con il mouse o premere qualunque tasto oppure attendere 5 secondi.

Passaggio 2 - Creazione di un progetto predefinito

  • Scegliere "Crea nuovo progetto", quindi OK. Viene visualizzata la finestra di progetto principale di Dotfuscator con la scheda Input selezionata.
  • Selezionare l'assembly da offuscare.
  • Fare clic su Sfoglia.
  • Cercare:
C:\Programmi\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\bin\Debug 
  • Scegliere GettingStarted.exe.
  • Fare clic su Apri. Il percorso del file eseguibile viene visualizzato nella casella di riepilogo relativa ai file di input.
  • Scegliere File | Salva progetto per salvare il progetto.
  • Nella finestra di dialogo Salva progetto, cercare:
C:\Programmi\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\
  • Nel campo relativo al nome file digitare "Dotfuscator.xml", quindi scegliere Salva.

Passaggio 3 - Generazione del progetto

  • Fare clic sulla scheda Genera. Per impostazione predefinita, il campo Directory di destinazione è così compilato: ${configdir}\Dotfuscated. Nota: ${configdir} rappresenta una variabile che contiene il percorso al file di configurazione di Dotfuscator.
  • Il progetto è pronto per essere offuscato. Scegliere Genera. Attendere qualche istante mentre Dotfuscator genera una versione offuscata dell'applicazione HelloWorld. L'assembly offuscato viene memorizzato in:
C:\Programmi\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\Dotfuscated

È ora possibile passare alla scheda di output ed esplorare i simboli offuscati, esaminare il file della mappa di ridenominazione (map.xml) creato da Dotfuscator nella directory di output oppure eseguire l'applicazione offuscata. L'applicazione è stata offuscata correttamente con il minimo di attività di configurazione.

Con poche altre attività di configurazione sarà possibile utilizzare alcune delle funzionalità più potenti di Dotfuscator.

Passaggio 4 - Configurazione del progetto

  • Fare clic sulla scheda Opzioni.
  • Impostare la proprietà "Stato generazione" su "Modalità con output dettagliato". Verranno fornite ulteriori informazioni sull'avanzamento dell'esecuzione nella parte inferiore della scheda di generazione.
  • Impostare "Crea simboli di debug" su "Sì". L'impostazione di questa proprietà indica a Dotfuscator di creare un file di simboli in formato PDB per ogni assembly di output. I debugger possono utilizzare questi file per fornire informazioni utili durante una sessione di debug. In genere le informazioni fornite contengono numeri di riga, nomi di file di origine e nomi delle variabili locali. I file PDB vengono inseriti nella directory di output insieme agli assembly di output.
  • Impostare i valori per "Disattiva ridenominazione", "Disattiva flusso di controllo", "Disattiva crittografia stringhe" e "Disattiva rimozione" su "No". Dotfuscator consente un controllo con granularità fine sulle trasformazioni applicate agli assembly. Nei passaggi successivi verranno configurate e utilizzate tali funzionalità.
  • Fare clic sulla scheda Ridenominazione. La ridenominazione consente di oscurare il codice trasformando i nomi di metodi e campi in nomi non comprensibili. Il processo di ridenominazione è attivato per impostazione predefinita ed è necessario selezionare esplicitamente gli elementi da escludere da tale processo. Per questa applicazione non è necessario escludere alcun elemento.
  • Fare clic sulla sottoscheda relativa alle opzioni di ridenominazione. Selezionare "Usa EOI (Enhanced Overload Induction)". Tale funzionalità offre una ridondanza maggiore anche del 15% nella ridenominazione dei metodi e dei campi. Poiché l'overload sul tipo restituito dal metodo o sul tipo del campo non è in genere supportato nei linguaggi di origine (inclusi C# e VB), l'esecuzione dei decompilatori risulta ulteriormente ostacolata.
  • Per impostazione predefinita, il valore nella casella di testo "File MAP di output" è: ${configdir}\Dotfuscated\Map.xml
  • Selezionare "Output in formato HTML" per ottenere un report con informazioni e statistiche sulla ridenominazione relative all'applicazione. Il report verrà generato nella stessa directory del file MAP. La posizione predefinita è ${configdir}\Dotfuscated\Map.html.
  • Fare clic sulla scheda Flusso di controllo. L'offuscamento del flusso di controllo consente di sintetizzare costrutti condizionali, iterativi e con diramazioni (quali se, per e mentre) che generano logica eseguibile, ma che restituiscono come risultato una semantica non deterministica in caso di decompilazione. In altri termini, il codice viene eseguito come di consueto, ma i decompilatori non possono riprodurre il codice originale.
  • Fare clic sulla scheda Crittografia stringhe. La crittografia delle stringhe consente di rendere indecifrabili le stringhe dell'applicazione. Per ignorare il processo di registrazione e verifica, è ad esempio possibile cercare la stringa di richiesta di un numero seriale all'utente. Una volta trovata tale stringa, si possono cercare le istruzioni adiacenti e alterarne la logica. La crittografia delle stringhe ostacola significativamente questo processo, poiché la ricerca non restituisce alcun risultato.
  • La crittografia delle stringhe è basata sull'inclusione ed è pertanto necessario selezionare la casella di controllo dell'assembly alla radice della struttura visualizzata nel riquadro di sinistra per includere tutti i metodi nell'assembly di input.
  • Fare clic sulla scheda Rimozione. La rimozione indica a Dotfuscator di individuare e rimuovere tipi, metodi e campi inutilizzati. È quindi possibile risparmiare una notevole quantità di spazio nell'applicazione finale.
  • La rimozione viene eseguita in maniera corretta solo se si indicano a Dotfuscator i punti di ingresso dell'applicazione. In questo caso, il punto di ingresso è il metodo "Main" standard e Dotfuscator è in grado di stabilirlo senza configurazioni aggiuntive.

Passaggio 5 - Rigenerazione del progetto

  • Fare clic su Genera. Il progetto è pronto per essere rioffuscato. L'assembly offuscato viene memorizzato come in precedenza in:
C:\Programmi\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\dotfuscated

Passaggio 6 - Esplorazione dell'output

  • Fare clic sulla scheda Output. È ora possibile esplorare una struttura in cui viene visualizzata la modalità di offuscamento del codice utilizzata da Dotfuscator.
  • Espandere la struttura radice e tutte le sottostrutture. Si notino le icone blu di forma romboidale. Si tratta dei metodi e campi rinominati. Negli elementi padre di tali icone vengono visualizzati i nomi originali. I metodi e i campi sono stati ridenominati in Dotfuscator, in modo da rendere praticamente impossibile decifrare lo scopo di ciascun metodo. Tale ridenominazione può influire notevolmente sul processo di decodifica del codice.

  • Si notino i metodi SaySomething e set_Name evidenziati, nonché la proprietà Name. Dotfuscator ha rilevato che questi elementi non vengono utilizzati dall'applicazione. La funzionalità di eliminazione di Dotfuscator è pertanto in grado di rimuoverli, al fine di rendere l'applicazione più compatta.

Passaggi successivi

È stato eseguito l'offuscamento mediante l'interfaccia utente grafica. È a questo punto possibile ottenere gli stessi risultati utilizzando l'interfaccia della riga di comando. È inoltre possibile esaminare l'assembly di output offuscato in dettaglio per verificare l'efficacia dell'offuscamento.

© 2002-2007 PreEmptive Solutions. Tutti i diritti riservati.