Se eu tranformar meu .jar em um executavel alguem ainda consegue pegar meu codigo fonte?

Bom dia Pessoal,
estava pesquisando sobre como proteger meu codigo fonte, vi muitas coisas, ofuscadores, criptografia, contratos e purai vai…acho que é uma pergunta basica:

Se eu tranformar meu .jar em um executavel alguem ainda consegue pegar meu codigo fonte?
Alguem conhece o excelsior jet? ele vale a pena? ou jsmooth?

valeu.

Se for em código nativo é bem mais difícil que em .class. O código nativo gerado pelo ExcelsiorJet é um bocadinho difícil de ser reconvertido para sua forma original .class; acho que só russos ou chineses bem motivados é que conseguem fazer esse serviço difícil e trabalhoso.

É muito fácil fazer uma engenharia reversa a partir do .class

É fácil fazer engenharia reversa, desde que seu jar não seja ofuscado.

Tecnicamente o código-fonte (programa Java + comentários) não pode ser recuperado a partir de um arquivo .class, mas para o que interessa (algoritmos etc.) é plenamente possível recuperar o tal fonte, se você aceitar que os comentários sejam perdidos e algumas variáveis locais fiquem sem nome definido corretamente. Um exemplo:

Programa original

import java.util.*;

public class ListPropertiesMS {
    public static void main(String[] args) {
        Properties prop = System.getProperties();
        for (Enumeration en = prop.propertyNames(); en.hasMoreElements(); ) {
            String name = (String)en.nextElement();
            System .out .println (name + "=" + prop.getProperty (name));
        }
    }
}

Programa descompilado com o Jode:

import java.util.Enumeration;
import java.util.Properties;

public class ListPropertiesMS
{
    public static void main(String[] args) {
	Properties prop = System.getProperties();
	Enumeration en = prop.propertyNames();
	while (en.hasMoreElements()) {
	    String name = (String) en.nextElement();
	    System.out.println(name + "=" + prop.getProperty(name));
	}
    }
}

Embora o programa não seja igualzinho, pode perfeitamente ser modificado e recompilado. É por isso que muita gente não usa Java porque seu programa pode ser “descompilado”.

Não pois só vai gerar os .class da sua aplicação só quem vai intender é a JVM !!! :slight_smile:

Mas ele perguntou se iriam acessar o código fonte dele !? Coisa que não vai acontecer pq so vai ser gerado o code que a jvm vai gerar , portanto não vai ser legivel !!!

Agora ser fizerem a engenharia reversa é outra coisa que vai dar mais um pouquinho de trabalho … :slight_smile: