Qual seria uma boa estratégia para fazer uma engenharia reversa em um arquivo .jar?

Me deparei com um problema na empresa, onde não tenho o código fonte que gera esse arquivo jar, por irresponsabilidade da própria empresa que perdeu os fontes, mas de qualquer forma terei que disponibilizar uma novo comportamento nesse jar.

Por isso estou pesquisando sobre como fazer engenharia reversa, e a partir do bytecode .class dentro do jar, gerar o código fonte .java.

Mas além da pesquisa que já fiz, gostaria de saber a opinião do pessoal mais experiente aqui no guj, que ferramentas poderiam indicar para fazer engenharia reversa de bytecodes para java?

Esse aqui é muito bom:
http://java.decompiler.free.fr/

Recomendo o JD.

O melhor que já usei até o momento.

Abraço.

ViniGodoy foi mais rápido heheheheh.

[quote=johnny quest]Me deparei com um problema na empresa, onde não tenho o código fonte que gera esse arquivo jar, por irresponsabilidade da própria empresa que perdeu os fontes, mas de qualquer forma terei que disponibilizar uma novo comportamento nesse jar.

Por isso estou pesquisando sobre como fazer engenharia reversa, e a partir do bytecode .class dentro do jar, gerar o código fonte .java.

Mas além da pesquisa que já fiz, gostaria de saber a opinião do pessoal mais experiente aqui no guj, que ferramentas poderiam indicar para fazer engenharia reversa de bytecodes para java?[/quote]

A nível de curiosidade, sobrescrever os métodos que você necessite, é inviável devido ao esforço e etc ?
De resto, as ferramentas indicadas aqui são ótimas.

os dois melhores ja foram citados aqui… o cavaj e o java decompiller… eu já tive experiência com isso pelo mesmo motivo que você está tendo agora e sobre qual deles usar eu indico… os dois…

pela experiência que eu tive, em certas partes um se sai melhor e em outras partes o outro se sai melhor… pelo que eu me lembro eu usei o JD na maioria, peguei os lugares que ele não foi bom e peguei a versão do cavaj nestes casos… você ainda vai precisar mesmo depois disso de algumas mechidas manuais para fazer funcionar, vai ter coisa que não vai compilar… resolvendo isso você ja pode tocar o barco mas se você tiver tempo (coisa rara hoje em dia hein…) faça um bom refactoring neste código… ele não é muito legível, obviamente não tem nenhum comentário… enfim.

se for o caso você também pode fazer o contrário, descompilar a maioria com o cavaj…veja qual fica melhor…

Obrigado por todas as respostas.

Acabei utilizando mesmo o Java Decompiler, que por sinal é excelente.

:smiley: :smiley:

Tive uma situação parecida há uns anos e acabei não conseguindo usar nada porque não tinha acesso a internet nem podia sair com os jars ou instalar coisas no computador. Então usei o plugin Bytecode Outline no Eclipse de lá e abusei de decorators pra sobrescrever comportamentos.

Eu recomendo você a usar esse plugin também. É uma mão na roda!