Bom dia pessoal.
Estou com uma dúvida, em um projeto que estou desenvolvendo. O software está concluído, e eu o obfusquei usando o proguard, para que não se consiga fazer engenharia reversa. Após a obfuscação, o jar perde a capacidade executável.
Existe uma maneira, de que, ao executar o jar, ele se de-obfusque?
[quote=juliocbq] Após a obfuscação, o jar perde a capacidade executável.
[/quote]
Algo foi feito na obfuscação que fez com que o JAR não conseguisse ser mais executável (por exemplo, porque algumas bibliotecas não foram mais carregadas, ou porque alguma classe ou método que deveria ser carregado por reflection agora mudou de nome e não consegue mais ser invocada).
Você precisa checar alguns parâmetros do obfuscador para que ele não trabalhe tão agressivamente assim.
[quote=entanglement][quote=juliocbq] Após a obfuscação, o jar perde a capacidade executável.
[/quote]
Algo foi feito na obfuscação que fez com que o JAR não conseguisse ser mais executável (por exemplo, porque algumas bibliotecas não foram mais carregadas, ou porque alguma classe ou método que deveria ser carregado por reflection agora mudou de nome e não consegue mais ser invocada).
Você precisa checar alguns parâmetros do obfuscador para que ele não trabalhe tão agressivamente assim.[/quote]
Ok, vou checar a documentação. Obrigado pela luz.
Veja se ele não mudou o nome da classe que contém o main, e se esta mudança
está refletida no Manifest.
[quote=fabiofalci]Veja se ele não mudou o nome da classe que contém o main, e se esta mudança
está refletida no Manifest.[/quote]
Verifiquei aqui, e não mudou. Agora ele executa, mas a funcionalidade do hibernate ficou comprometida. Vou continuar lendo aqui.
Veja se em algum lugar voce não fez um Class.forName e o obfuscador mudou o nome da classe.
Veja também se o projeto não usa Reflection e o obfuscador mudou o nome dos atributos da classe.
Cuidado com arquivos XMLs e .properties com classes/atributos. Como por exemplo os
XMLs do Spring. Se não me engano o proguard tem um modo onde ele procura por ‘referências’
em arquivos não java e acerta.
O problema era que as annotations do hibernate estavam sendo obfuscadas. Criei uma regra para excluí-las, e deu tudo certo. Muito Obrigado, a quem postou idéias, e contribuiu com a solução.
você não pode obfuscar nada do hibernate, principalmente as annotations, senão seu soft para de funcionar.
Caros amigos, precisaria obfuscar meu arquivo hibernate.properties junto com “MeuJar.jar” com esse programa não teria problemas ? se tiver como, qual seria a solução para isso?