Eae galera, to com uma duvida, um dos problemas que acho do Java, na verdade não so dele mas de diversas linguagens é a facilidade em se pegar o codigo fonte de uma aplicação.
Vc cria o arquivo .jar, dai alguem joga em um descompilador e ja elvis rsrs mas beleza eu pesquisei e achei sobre embaralhar o codigo, estava usando o proguard que fez tudo muito bem, poreeeeeeeem o que percebi é que ele nao embaralha algumas coisas, como textos de string, entao em um arquivo de teste que estava fazendo tinha la a senha do banco e login, e o mesmo nao embaralhou
acho que ele ate ajudou visto que era asism antes:
private static final String STR_DRIVER = "org.postgresql.Driver"; private static final String NOME_BANCO = "LojaTeste"; private static final String STR_CONEXAO = "jdbc:postgresql://localhost:5432/" + NOME_BANCO; private static final String USUARIO = "postgres"; private static final String SENHA = "postgres";
…
try {
Class.forName(STR_DRIVER);
conn = DriverManager.getConnection(STR_CONEXAO, USUARIO, SENHA);
System.out.println(“Conectado ao banco de dados”);
}
E depois de usar o proguard, mandei descompilar e ficou assim:
try
{
Class.forName("org.postgresql.Driver");
this.a = DriverManager.getConnection("jdbc:postgresql://localhost:5432/LojaTeste", "postgres", "postgres");
System.out.println("Conectado ao banco de dados");
}
rsrs ele ate juntou pro cara :v kkk estava pensando em algum jeito de criptografar, porem o cara vai ler o codigo e vai saber tb, alguem tem alguma sugestão?e.e
Cara… Quando jogar pra arquivo .jar , não tem como reverter para códigos não… Eu acho né, nunca encontrei um jeito de fazer isso rs
O metodo mais facil é usar o java decompiler, pegue um jar que vc criou e usa ele pra vc ver, fica perfeito
o site é este aqui, ele pega o seu jar e transforma certinho no codigo fonte igual quando tava no netbeans ou eclipse rs
Não tem como fugir de um descompilador, o melhor q se pode fazer é usar um ofuscador de código como o proguard.
Espera-se q o programa não seja distribuído pelo cliente, pois contém informações sigilosas dentro do programa do próprio cliente.
Se o usuário fica com a aplicação q acessa o banco de dados de um servidor, então crie um usuário dentro do banco de dados para cada cliente para acessar o banco, assim o USUARIO e SENHA irão variar de cliente para cliente, mantenho o sistema mais seguro.
Exemplo:
// conexao para user0
conn = DriverManager.getConnection(STR_CONEXAO, "user0", "password0");
// conexao para user1
conn = DriverManager.getConnection(STR_CONEXAO, "user1", "password1");
// conexao para user2
conn = DriverManager.getConnection(STR_CONEXAO, "user2", "password2");
// conexao para user3
conn = DriverManager.getConnection(STR_CONEXAO, "user3", "password3");
Dependendo do banco, é possivel restringir as permissoes de acesso dos usuários as tabelas, dando ainda mais segurança.
Mas a forma mais segura seria criando um servidor como intermediário, o aplicativo acessa o servidor e o servidor (q contém as informações do banco) acessa o banco.
1 curtida
Consegui ofuscar com o Allatori, beeeeeeem melhor que o proguard, alem de que ele criptografa as Strings, tentei descompilar com quase todos da net e o codigo ficou ilegivel e.e valeu
1 curtida