Abbiamo lo stesso tipo di esigenze (semplice offuscamento, necessità di eseguire il debug in seguito) e utilizziamo ProGuard. È un'app Java, che può essere integrata in un'attività Ant.
Può fare un sacco di cose, ma è anche completamente modificabile. Quindi puoi mantenere la tua confusione semplice. Una delle opzioni è quella di generare una "Tabella di corrispondenza dei simboli", che consente di recuperare il codice non compromesso da quello offuscato. (tiene traccia che la variabile xyz nella classe qksdnqd è infatti myCuteVarName nella classe MeaningfulClassName)
Modifica: l'offuscamento può essere complicato. Alcuni esempi:
- Non è possibile modificare il nome del metodo principale.
- Usi un classloader? Può ancora recuperare la classe dopo l'offuscamento?
- E la tua mappatura ORM? Il tuo contesto primaverile? (Se presente)
Edit2: È anche possibile vedere:
fonte
2009-09-03 07:50:31
Sì, so della tabella SC. Ma io e il mio team non siamo quel guru che può facilmente eseguire il debug e modificare il codice offuscato anche usando la tabella :) Quindi sto solo cercando uno strumento che mi permetta di eseguire il debug in modo trasparente del codice. – Vitaly
Non devi essere un guru, fornisci la tabella e il vaso offuscato all'app e diventano nuovamente leggibili (meno il commento). Ah ... ma non penso che tu possa "hotswaping" con questo processo (è come rimuovere e sostituire tutto il barattolo) –
Forse non capisco qualcosa. Sarò in grado di "passo dopo passo" eseguire il debug del codice offuscato e vedere il codice "normale" nello stesso momento in una sorta di debugger (senza azioni aggiuntive come guardare la tabella, avviare altre app e così via)? – Vitaly