GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Descompilador Java 5


#1

Pessoal

Descobri este descompilador que suporta bytecode Java 5:

http://java.decompiler.free.fr/

Alguém conhece um melhor?


#2

Parece muito bom, só que você tem de tomar cuidado com este tipo de código que ele gera:

  public boolean containsAll(Collection<?> paramCollection)
  {
    Iterator localIterator = paramCollection.iterator();
    do
      if (localIterator.hasNext())
        break label31;
    while (contains(localIterator.next()));
    return false;
    label31:
    return true;
  }

O Jode e o JAD, de propósito, usam "goto" nos códigos que não são fáceis de descompilar devido às combinações de bytecodes que eles não conseguem transformar para um "while" ou um "for" corretamente. Mas ele usa "break" e isso se parece com código válido.


#3

po...meio em off... é o primeiro decompilador que eu uso...gostei dele...

eu fui testa em um .class meu aqui, até que achei um while(true) no meio do codigo e ja pensei "eu fiz isso???"

ai que eu olhei...ele troco

    for (int indice = tamanho;indice &lt; 6; indice++){
        retorno=&quot;0&quot;+retorno;// += tava ficando com o 0 do lado errado
    }

por

int indice = tamanho;
while (true)
{
if (indice < 6)
break;
retorno = "0" + retorno;
++indice;
}

interessante isso...no final das contas da na mesma...


#4

Hum, se ele fez isso, ele deixou o escopo da variável "índice" errado. É que "índice" só vale dentro do "for".

O ruim do Jode (que é um descompilador com fonte) é que o desenvolvedor simplesmente não teve mais interesse em efetuar sua manutenção. O ruim desse descompilador francês é que ele não tem fonte (é só freeware) e tem alguns bugs visíveis (em um lugar, o descompilador se "esqueceu" de retornar um valor.)


#5

tingol vc tem razão...isso me passo desapercebido... sinal q eu nao fui la tao atento assim...

fora esse bug do escopo eu não vi nenhum...tentei emmais algumas outras classes e funciono...

o metodo de onde eu tirei esse loop, que foi de onde eu olhei mais certinho o codigo (ele é curtinho) me pareceu semanticamente equivalente (menos mau) apesar do problema com o escopo.

depois se for o caso eu pego fontes pegos por ele, compilo novamente e vejo o arquivo gerado, tamanho se é igual, tento executa...coisas do tipo...

de repente ainda deve me ser mto ser util, ao menos pra mim que comecei com isso agora... (to pensando em começa a aprende criptografia...rs)


#6

Caraa..esse decompilador é show de bola.

Estava com um problemao aqui no trabalho, pois perdemos o repositorio e simultaneamente meu hd pipocou... ai ja viu neh.. backup recenete q eh bom kd??

Tive a sorte de ja ter jogado no servidor de producao. Ai chegou meu problema, todos os descompiladores que testei traziam tudo baguçado e de dificil compreensao.

Esse que funciona com java 5 salvou minha vida..

obrigado galera


#7