2011-12-18 3 views
9

Ho usato gli offuscatori java in passato e alcuni sono facili da decodificare. Ho pensato che forse non era abbastanza offuscato.È sbagliato ri-offuscare il codice offuscato?

È sbagliato o problematico applicare l'offuscazione in due fasi?

  1. Oscurazione con ProGuard
  2. finirlo con un prodotto commerciale Zelix Klassmaster

-

O è che un cattivo approccio? Dovrebbe essere usato un solo obfuscator?

+0

È "ok", nel senso che non accadrà nulla di male. –

+4

Penso che sia una buona domanda. Non so perché ha ottenuto un voto "vicino". Forse dovrebbe essere riformulato un po '. – MByD

+0

Ho votato per chiudere perché non è chiaro cosa significhi "okay" e "cattivo", in senso oggettivo. –

risposta

4

Fintanto che il codice continua a funzionare correttamente, indipendentemente dal numero di offuscatore utilizzato, dovrebbe essere OK. Ricorda che la preoccupazione principale dell'uso dell'offfuscator è rendere il codice illeggibile il più possibile mantenendo la sua correttezza.

2

re-offuscamento codice offuscato è un metodo ben noto di codice non offuscante. ad es. si può offuscare le classi di avere nomi che non fanno finestre validi nomi di file come

class COM1 { ... } 

decompilazione che si tradurrebbe in un file chiamato COM1.java, che non è un nome di file valido finestre e si rompe quindi molti decompilatori.

La soluzione sarebbe quella di ri-offuscare prima utilizzando un dizionario di nomi come class1, class2, method1, method2, field1, field2 e quindi decompilare. Il codice decompilato ora non solo sarà più valido decompilare, ma anche più leggibile.

L'uso di offuscatori in serie comporta di solito un codice offuscato così forte come l'ultimo offuscatore utilizzato. (vale a dire la catena è forte come l'ultimo link)

Ti suggerisco di attenersi a un obfuscator ma assicurati di aver compreso ogni singola opzione nel processo di offuscamento e di quanto sia facile da annullare.

+0

Immagina che l'ultimo obfuscater abbia semplicemente copiato il codice. Come può rendere meno efficaci le precedenti fasi di offuscamento? Penso che sia forte quanto il link più forte. –

+0

@IraBaxter Capisco cosa intendi, ma molte tecniche di offuscamento possono essere annullate ri-offuscando. – Matiaan

+0

'L'uso di offuscatori in serie comporterebbe in genere un codice offuscato così forte come l'ultimo offuscatore utilizzato. (cioè la catena è forte come l'ultimo link) "Perché? – EJP