2009-08-17 4 views
7

Come funziona Dotfuscator? Ho provato ad offuscare alcune delle mie classi e ha ribattezzato i metodi/classe a a, b, c ecc. Ma posso ancora vedere il codice all'interno di questi metodi? È così, sto facendo qualcosa di sbagliato?Come funziona Dotfuscator?

C'è qualcosa che impedirebbe un blocco totale di smontaggio del mio assemblaggio?

risposta

7

Questo è il modo in cui dovrebbe funzionare. Il tuo codice è ancora accessibile, solo più difficile da capire. Se vuoi qualcosa di "più forte", dai un'occhiata a Xenocode PostBuild.

+0

Questo sicuramente funziona meglio del Dotfuscator. Grazie. – Bhaskar

+0

Assicurati di comprendere le differenze tra l'offuscamento semplice e alcune delle opzioni di PostBuild (come il supporto binario nativo). Si perde molta della flessibilità del framework .NET con i binari nativi. –

+0

Lo Xenocode influenzerebbe la velocità/dimensione del programma? Compilerà l'applicazione al binario nativo al 100%, ovvero quasi impossibile decompilare? – Phoexo

1

Dotfuscator rende più difficile leggere la sorgente decompilata, ma non impedisce la decompilazione stessa.

4

non è possibile bloccare un de-assemblaggio in .net


+0

-1: Puoi bloccare il de-assemblaggio, dai un'occhiata alla mia risposta. Usare Xenocode PostBuild tu puoi compilare la tua applicazione .NET in un binario nativo. –

+2

@Jon, quindi non è più .net, il punto è con 100% .net exe, tu impossibile bloccarlo – Fredou

+0

L'OP dice "C'è qualcosa che impedirebbe un blocco totale di smontare il mio assemblaggio?" e ​​la risposta è sì, c'è. –

1

se avete Professional o oro Dotfuscator si può bloccare il programma riflettore di aprire i assebmlies.

+1

Se ciò è possibile, è possibile utilizzare ILDASM per disassemblare il codice, quindi rimuovere l'attributo "non mostrare il mio codice", quindi ILASM indietro. Reflector ti permetterà di vederlo ora. :) – David

+0

Professional o Gold supporta anche l'offuscamento del codice che rende il codice molto difficile da leggere – Earlz

2

Sfortunatamente, non c'è modo di impedire che qualcuno rifletta l'assemblaggio e lo smontiamo al codice sorgente. Strumenti di offuscamento come Dotfuscator renderanno notevolmente più difficile per qualcuno leggere il codice smontato, dove virtualmente tutti i nomi leggibili dall'uomo possono essere sostituiti da simboli privi di significato.

Se si sta rilasciando il proprio codice ovunque, se qualcuno è sufficientemente determinato sarà in grado di eseguirne il reverse engineering. Il meglio che puoi fare è renderlo non vale la pena il loro tempo per farlo.

2

La versione fornita con Visual Studio è limitata e non mi fare affidamento su di esso per l'offuscamento su larga scala se è necessario distribuire qualcosa ai siti dei clienti. Uno libero che potresti voler guardare è Eazfuscator.net.

+0

Eazfuscator.NET non sembra essere più gratis ... È $ 399 ora ... – Sorskoot

13

L'offuscamento del codice va ben oltre la semplice ridenominazione di classi, membri e variabili, sebbene questa sia una parte importante di esso.

Per esempio, Dotfuscator utilizza una tecnica brevettata chiamata sovraccarico induzione, dove molti metodi vengono rinominati al stesso nome (questo è possibile a patto che essi hanno diverse firme). Le soluzioni PreEmptive citano i casi in cui un terzo di tutti i metodi nel codice viene rinominato in a(). Altre tecniche implicano la riscrittura di semplici iterazioni come ricorsione, nonché code morphing.

In realtà, le moderne tecniche di offuscamento sono perfettamente adeguate per rendere virtualmente impossibile la decodifica del codice, almeno a mano. Mentre è vero che gli assembly .NET non possono mai essere RE-safe in linea di principio, l'offuscamento può fornire una barriera piuttosto formidabile.

Per la maggior parte di noi, è sufficiente.

+0

Grazie ... ottime informazioni. – Bhaskar