[RESOLVIDO] Exposição do código fonte compilado

Boa noite, GUJ!

Estava lendo alguns artigos sobre Java na internet até que me deparei com a seguinte citação, em uma seção onde procurava-se diferenciar Javascript de Java:

Sobre Javascript eu não tenho dúvida alguma, mas sobre Java é que fica a dúvida: depois de compilado, realmente o código se torna indecifrável? Tenho minhas dúvidas por que uma vez li um outro artigo (não me lembro onde nem qual o título) o qual falava sobre engenharia reversa em Java, dizendo que era bem mais fácil que com outras linguagens onde o programa não é interpretado. Minha dúvida maior surgiu pelo fato de Java realmente ser uma interpretada, e não diretamente compilada.

Minha dúvida é: O código em Java após compilado é realmente indecifrável? Se sim, realmente não há modo algum de alguém pegar meu código-fonte? Se não, o quão difícil é obter o código-fonte de um programa Java? E que métodos eu posso usar para deixar o código-fonte do meu programa mais difícil de ser “descoberto”?

Acho que quem escreveu esse artigo estava confundindo Java com outra linguagem :slight_smile:

Bom o fonte e seu respectivo artefato(war, ear, jar) normalmente vai estar no servidor… logo nao é muito possivel alguem tentar fazer engenharia reversa com algo que nao tem acesso… é possivel fazer sim, normalmente em programas feitos em Swing,awt… por ser desktop, mas se o programador souber o que faz nao deixa exposto… simples assim

darklordkamui, me refiro a programas feitos para desktop mesmo. Quão difícil é obter o código-fonte ou parte dele em um programa?

Baixa o Java Decompiler e vê.
http://java.decompiler.free.fr/

Não é nada indecifrável. Na verdade, a descompilação praticamente reverte ao código original.

ViniGodoy, não baixei o programa, mas confio nas suas palavras :slight_smile:

Mas então, existe algum meio de pelo menos dificultar o acesso ao código-fonte original?

E se, suponhamos, eu criasse um programa ou jogo em Java, o que eu posso fazer para que outras pessoas não “roubem” a ideia desde o código-fonte? Eu gosto de Java, mas não gostaria que outras pessoas tivessem “livre-acesso” à minha produção :frowning:

Se você quer proteger seu código fonte, não use Java e sim C++.

Você até pode usar um ofuscador o que, assim como no caso do JavaScript, dificulta um pouco a leitura do código.
Mas nada que alguém realmente determinado não poderia quebrar.

Aliás, no caso dos jogos, o Java como plataforma por si só não compensa. A menos, claro, que você esteja desenvolvendo para Android.

Bem, acho que tenho uma segunda linguagem para aprender, agora :slight_smile:

Obrigado a todos pelas respostas

[quote=War Paz]Boa noite, GUJ!

Estava lendo alguns artigos sobre Java na internet até que me deparei com a seguinte citação, em uma seção onde procurava-se diferenciar Javascript de Java:

Sobre Javascript eu não tenho dúvida alguma, mas sobre Java é que fica a dúvida: depois de compilado, realmente o código se torna indecifrável? Tenho minhas dúvidas por que uma vez li um outro artigo (não me lembro onde nem qual o título) o qual falava sobre engenharia reversa em Java, dizendo que era bem mais fácil que com outras linguagens onde o programa não é interpretado. Minha dúvida maior surgiu pelo fato de Java realmente ser uma interpretada, e não diretamente compilada.

Minha dúvida é: O código em Java após compilado é realmente indecifrável? Se sim, realmente não há modo algum de alguém pegar meu código-fonte? Se não, o quão difícil é obter o código-fonte de um programa Java? E que métodos eu posso usar para deixar o código-fonte do meu programa mais difícil de ser “descoberto”?[/quote]

Boa tarde,

Acho que quando ele diz “se torna indecifrável”, estava se referindo ao fato de linguagem não ficar exposta como as interpretadas (javascript, python, etc), e não que Java é indecifrável (ao pé da letra).

Uma observação para o dono desse fórum: Deveria colocar algo como “a game-Captcha é CASE SENSITIVE” na tela de cadastro do mesmo. Ajudaria um pouco. ^^

[quote=dot.z]Boa tarde,

Acho que quando ele diz “se torna indecifrável”, estava se referindo ao fato de linguagem não ficar exposta como as interpretadas (javascript, python, etc), e não que Java é indecifrável (ao pé da letra).

Uma observação para o dono desse fórum: Deveria colocar algo como “a game-Captcha é CASE SENSITIVE” na tela de cadastro do mesmo. Ajudaria um pouco. ^^[/quote]

Não sei se adiantaria. A gente já pede para os usuários não ressuscitarem tópicos muito antigos se não tiverem algo muito relevante para falar, mas ninguém acaba lendo.

[quote=ViniGodoy][quote=dot.z]Boa tarde,

Acho que quando ele diz “se torna indecifrável”, estava se referindo ao fato de linguagem não ficar exposta como as interpretadas (javascript, python, etc), e não que Java é indecifrável (ao pé da letra).

Uma observação para o dono desse fórum: Deveria colocar algo como “a game-Captcha é CASE SENSITIVE” na tela de cadastro do mesmo. Ajudaria um pouco. ^^[/quote]

Não sei se adiantaria. A gente já pede para os usuários não ressuscitarem tópicos muito antigos se não tiverem algo muito relevante para falar, mas ninguém acaba lendo.[/quote]

Lol, foi mal, nem havia me lembrado disso hehe. Só queria dar essa dica para o administrador…