18/04/12

Come proteggere i tuoi sorgenti VB.NET

 

I programmi scritti in VB.net sono facili da decompilare. Questo fatto non è dovuto ad una debolezza del linguaggio o ad un errore di programmazione dei tecnici che hanno implementato l’IDE, ma è un fatto voluto.

Il codice eseguibile che poi viene compilato nel nostro file exe, diventa prima parte di un file intermedio chiamato MSIL, che può essere facilmente decompilato con programmini gratuiti presenti sul web.

La tecnica che andiamo a presentare e che confonde le idee dei decompilatori, e che possiamo utilizzare per proteggere la proprietà intellettuale delle nostre creazioni, si chiama offuscamento.

Lo scopo dell’offuscamento è di creare confusione nel linguaggio intermedio: più la confusione cresce più è difficile decompilare i sorgenti.

Poiché l’offuscamento semplifica i termini utilizzati nel nostro codice sorgente e rimuove quelli superflui, ci dà anche altri due benefici effetti: riduce la dimensione del nostro file eseguibile e lo velocizza.

Il miglior prodotto di offuscamento sul mercato è senza dubbio il

Dotfuscator, un prodotto della PreEmptive.

Esso è presente direttamente nell’IDE di Visualstudio.

Lo troviamo nel menu’ Strumenti –> Dotfuscator Software Services

Per utilizzarlo è necessario aggiungere al progetto prima l’assembly (il file exe o la dll che vogliamo offuscare). Poi basta cliccare il tasto play e viene effettuato l’offuscamento.

image

Alla fine ci viene presentato uno schemetto riassuntivo dove ci vengono indicati i tipi i metodi ed i campi rinominati dalla procedura.

La versione community edition, che è quella base che esce con Visualstudio, non consente di rielaborare (offuscare) i tipi ed i metodi generici. Per farlo, e quindi avere una protezione maggiore, occorre upgradare sul sito della PreEmptive la nostra versione di Dotfuscator  community Edition a quella a pagamento che è la Professional e fornisce una protezione ed una criptazione dei sorgenti VB più efficace.

Per cominciare comunque può essere sufficiente anche la protezione fornita dalla community Edition, che, ricordiamo ancora una volta, non agisce sui sorgenti che quindi non vengono intaccati, ma solo sul codice MSIL intermedio generato in fase di compilazione della soluzione.

Nessun commento:

Posta un commento

Cosa ne pensi?