Offuscare le applicazioni create utilizzando Dotfuscator

Pagina aggiornata :
Data di creazione della pagina :

sommario

Poiché le applicazioni basate su .NET Framework vengono create in quello che viene definito un linguaggio intermedio comune, possono essere lette in una forma vicina al codice sorgente originale utilizzando strumenti di disassembly e simili. In questa sezione viene descritto come offuscare Dotfuscator, l'offuscatore fornito con Visual Studio, per offuscare i nomi di classi e metodi in un formato non facilmente leggibile.

Ne stiamo parlando qui usando Visual Studio 2010, ma puoi usare Dotfuscator anche nel 2005 e nel 2008.

Dotfuscator を使用して作成したアプリケーションを難読化する

Ambiente operativo

Versioni di Visual Studio supportate

  • 2005
  • 2008
  • 2010

Controllare la versione di Visual Studio

  • 2005
  • 2008
  • 2010

sostanza

Informazioni su Dotfuscator

Dotfuscator è uno strumento di offuscamento che rende difficile la lettura del codice sorgente quando viene disassemblato in applicazioni scritte con .NET Framework. Dotfuscator viene fornito con Visual Studio gratuitamente e a pagamento.

La versione gratuita non è disponibile a meno che molte delle sue funzionalità non siano limitate o Visual Studio sia avviato, ma chiunque può utilizzarla purché visual studio sia installato. La versione a pagamento ha molte potenti funzionalità di offuscamento che non si trovano nella versione gratuita, ma è offerta ad un prezzo difficile da permettersi per il grande pubblico.

Dotfuscator ha caratteristiche, prezzi ed edizioni diversi a seconda della versione, quindi fai riferimento alla seguente homepage per i dettagli.

Procedura di offuscamento

難読化していないアプリケーションの逆アセンブル結果

Ho detto in precedenza che le applicazioni create con .NET Framework possono disassemblare e leggere facilmente il codice sorgente originale, ma la situazione reale è che se si disassembla il file exe come mostrato nella figura a destra, è possibile riprodurre quasi il codice sorgente originale come spazio dei nomi, nome della classe, nome del metodo, ecc.

Vengono descritti i passaggi per rendere questi nomi confusi e offuscati.

Dotfuscator Software Services

La creazione di un'applicazione in Visual Studio e la creazione di un file exe è esattamente la stessa del modo normale di crearla.

Dopo aver compilato e creato il file exe, scegliere Strumenti dal menu di Visual Studio e quindi selezionare Dotfuscator Software Services.

使用許諾契約書

Quando si avvia per la prima volta, viene visualizzata la finestra di dialogo "Contratto di licenza" come mostrato nella figura a destra, quindi leggere attentamente il contenuto, selezionare "Sì, accetto il contratto di licenza." e fare clic sul pulsante "OK".

Dotfuscator Software Services

Viene avviato Dotfuscator Software Services.

入力アセンブリの追加

L'exe (o il file dll) da offuscare non deve necessariamente provenire dal progetto attualmente aperto.

Selezionare Assembly di input dall'albero a sinistra e fare clic su Assembly di input a destra per fare clic sul pulsante ....

難読化する exe ファイル

Selezionare il file exe che si desidera offuscare.

追加したアセンブリ

Il file exe selezionato viene aggiunto all'elenco. Se si desidera offuscare più file, fare clic sul pulsante "..." dopo la seconda riga per aggiungerli.

プロジェクトのビルド

Dopo aver selezionato l'exe che si desidera offuscare, fare clic sul pulsante Compila progetto dalla barra degli strumenti.

プロジェクトの保存

Se sono presenti modifiche al progetto, viene visualizzata la finestra di dialogo di conferma del salvataggio del progetto, quindi fare clic su "Sì" per salvare.

プロジェクトの保存場所指定

Il progetto si chiama ". xml". Anche il file exe offuscato verrà salvato nella stessa posizione, quindi salva il file .xml in qualsiasi cartella.

ビルド

La compilazione inizierà e attenderà fino al completamento. Si noti che più grande è il programma, più tempo ci vuole per costruire. Se assomiglia alla figura a destra, la compilazione è completata.

Il campo del messaggio visualizza risultati semplici, ad esempio l'avanzamento della compilazione e la sua offuscamento.

難読化結果

Se selezioni "Risultato" dall'albero a sinistra, puoi vedere i dettagli di come sono cambiati i nomi delle classi e dei metodi.

Sotto i nomi delle classi e dei metodi, c'è un'icona Dotfuscator e un nome come "a" o "b", che è il nome offuscato. Modificando il nome della classe o del metodo con un nome privo di significato come questo, è possibile rendere difficile la lettura del contenuto del codice sorgente anche se viene disassemblato.

難読化したアセンブリ

I file exe offuscati vengono creati nella cartella dei file .xml salvati in Save Project, chiamati "Dotfuscated", e vengono creati in essa. Oltre al file exe, è stato creato un file "Map .xml", ma questo è il risultato di offuscamento e non deve essere utilizzato.

難読化したアセンブリの実行時エラー

Gli ex offuscati possono essere eseguiti e utilizzati così come sono. Tuttavia, ci sono casi in cui non può essere avviato a causa di un errore sconosciuto come mostrato nella figura a destra.

Questa volta, ho scritto un'applicazione in WPF, ma poiché il file XAML della prima finestra da visualizzare è specificato come stringa, la ridenominazione dovuta all'offuscamento causerà la perdita del riferimento, causando un errore.

Le applicazioni Windows Form fanno riferimento direttamente alla classe From, in modo che possano essere eseguite senza errori anche se sono offuscate. Tuttavia, se si specifica un nome di classe, un tipo di enumerazione, ecc. per nome, è necessario fare attenzione perché esiste la possibilità che si verifichi lo stesso errore.

難読化の除外

Se non vuoi offuscare una classe o qualcosa del genere, seleziona Rinomina dall'albero sul lato sinistro di Dotfuscator e seleziona Escludi dalla scheda centrale.

Ogni spazio dei nomi, nome della classe, ecc. verrà visualizzato nell'elenco a destra, quindi controlla gli elementi che non vuoi offuscare.

Qui, non voglio cambiare il nome della classe della finestra da visualizzare per primo, quindi controllo "MainWindow".

難読化から除外されたクラス

Quando si esegue la compilazione, è possibile vedere che non è presente alcun nome modificato sotto il nome della classe in MainWindows. (La classe dell'app è stata convertita in "a")

難読化したアセンブリの実行

Quando si esegue il file exe offuscato, è possibile vedere che la finestra viene visualizzata correttamente.

難読化後の逆アセンブル

Se si disassembla il file exe offuscato, è possibile vedere che il nome della classe e il nome del metodo sono stati modificati correttamente in "a" o "b".

Ma per inciso. NET Framework, ad esempio i nomi delle classi, non sono soggette a ridenominazione perché sono assembly già installati in Windows e altrove.

Questa volta, ho offuscato il progetto predefinito creato così com'è, quindi penso che ci sia un'immagine che non è così offuscata, ma penso che l'effetto dell'offuscamento diventi chiaro perché il numero di classi ecc. aumenta man mano che il progetto cresce.

Inoltre, sebbene questa volta abbiamo incluso la procedura nella versione gratuita, la versione a pagamento consente un offuscamento più complesso e impedisce anche lo smontaggio stesso. Tuttavia, l'offuscamento ha vari effetti avversi e il potenziale di verificarsi, quindi quando viene eseguito l'offuscamento, è necessario farlo mentre si considera se funzionerà correttamente dall'inizio del progetto.