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
}