Segurança Java

Estava lendo algumas coisas sobre segurança virtual e descobri duas coisas.
1-Alguns programas guardam dentro de si os codigos seriais para validacao e outros fornecem esses seriais pela internet.
2-Existem programas que podem desmontar o .exe e permitir o acesso aos codigo do programa.

Então, como estou estudando para ser programador, me surgiu algumas duvidas:
1-Quanto de memoria geralmente e determinado para os seriais?
2-O que eu usaria para proteger minhas aplicacoes de engenharia reversa? Falando em APIS, boas praticas de programacao e etc…
3-Descompiladores em java sao feitos como o principio do “desmontador de exe”?

.jar não é exe…
1 - Ele não fica na memória.
2 - Não existe um método 100% seguro, mas você pode tentar obfuscação de código.
3 - Não, ele apenas descompacta o jar e a partir dos .class recria os .java.

[quote=drsmachado].jar não é exe…
1 - Ele não fica na memória.
2 - Não existe um método 100% seguro, mas você pode tentar obfuscação de código.
3 - Não, ele apenas descompacta o jar e a partir dos .class recria os .java.[/quote]
Usei .exe so para comparar…
:smiley:

1- Digo memoria nesse sentido:
Um programa qualquer gastara 3GB para ser instalado. Se os seriais estao imbutidos dentro do programa…Quanto dentro dos 3 GB seria gasto para guardar os seriais?
2-Voce tem algum link interessante sobre obfuscacao de codigo?
3-Se .jar se “”“parece”"" com .zip. Não seria mais facil para alguem mal intencionado mudar os codigos da minha aplicacao java?

.jar não se parece, ele é um tipo de arquivo compactado.
Não possuo, mas deixa de preguiça e procura no google que tem muita coisa lá, até coisas boas, se duvidar.
Você não precisa se preocupar, por mais complexo que seja o algoritmo para geração da chave, ela não terá mais que 100KB de tamanho.

[quote=Johnnny8][quote=drsmachado].jar não é exe…
1 - Ele não fica na memória.
2 - Não existe um método 100% seguro, mas você pode tentar obfuscação de código.
3 - Não, ele apenas descompacta o jar e a partir dos .class recria os .java.[/quote]
Usei .exe so para comparar…
:smiley:

1- Digo memoria nesse sentido:
Um programa qualquer gastara 3GB para ser instalado. Se os seriais estao imbutidos dentro do programa…Quanto dentro dos 3 GB seria gasto para guardar os seriais?
2-Voce tem algum link interessante sobre obfuscacao de codigo?
3-Se .jar se “”“parece”"" com .zip. Não seria mais facil para alguem mal intencionado mudar os codigos da minha aplicacao java?[/quote]

  1. A resposta é simples: depende. Digamos que você tenha duas instalações diferentes do mesmo programa, com 2 seriais diferentes. A probabilidade de o serial não ser guardado dentro do programa (ou seja, de ele não ocupar nenhum espaço) é quase 100%. Normalmente essas coisas ficam guardadas em lugares relativamente escondidos, como o Registry.
  2. Isso é feito todo santo dia. Havia um tempo em que o JBuilder (CodeGear) tinha um esquema relativamente sofisticado de proteção, mas nada que um reempacotamento do jar não resolvesse :slight_smile:
    O .jar não “se parece” com o .zip; ele é um .zip com extensão diferente (ok, ok, o jar.exe cria arquivos .jar com mais alguns bytezinhos que são um pouco diferentes, mas isso é para que algumas versões do Linux, que aceitam executar arquivos .jar diretamente, possam inspecionar um arquivo .jar. Mas é uma diferença minúscula e quase irrelevante, já que está prevista na definição do formato do arquivo .zip).