Obfuscador

Pessoal,

Estou com uma dúvida na utilização do obfucador. O que eu quero fazer é o seguinte:

Um jar (por exemplo Utils.jar) que tenha as suas classes que possam ser utilizadas pelos programas que irei fazer.
Um outro jar (por exemplo Aplicacao.jar) que contenha a aplicação e que utilize as classes do Utils.jar.

Até este ponto eu consigo fazer. O problema é o seguinte, eu quero passar o obfuscador no Utils.jar para que ele mude todos os nomes de variáveis, métodos e classes. Obviamente, se eu alterar os nomes dos métodos públicos e das classes, o Aplicacao.jar irá parar de funcionar, só que eu também quero passar o obfuscador no Aplicacao.jar, de tal maneira que ele reconheça as mudanças feitas no Utils.jar (já obfuscado) e gere um código utilizando este último jar obfuscado.

O proguard faz isso??? Como??? Tem algum que faça???

Não sei se consegui ser claro nas minhas idéias…
Obrigado…

Oi

Amigo, acho dificil, pis se depois de obfuscar, ele ainda souber a relacao do original com o obfuscado, a obfuscação nao teria sentido…

T+

Mas quando você vai obfuscar, você pode gerar um arquivo com o mapeamento (um arquivinho falando qual o nome da classe antiga, para o novo nome, assim como os métodos)…

Com esse arquivo eu acho que seria possível fazer isso…

Flw…

Oi

hummmmmm, nao sabia desse esquema aí, sendo assim eu acho que é possível sim… Só nao sei com o proguard, nao conheço bem…

T+

normalmente os ofuscadores de código não modificam os métodos e atributos públicos e protegidos das classes, o que realmente faz sentido pois o objetivo dos ofuscadores é esconder a implementação dos métodos. Uma boa dica quando vc for usar algum ofuscador no seu código é fazer com que os métodos públicos façam chamadas diretamente para métodos privados, ou métodos privados em classes privadas, assim depois de ofuscado o código decompilado será algo como:

public static void meuMetodoPublico() { A.a(); //<< método privado de uma classe privada com outro nome que foi ofuscado }