Como bloquear os .class de um jar?

Pessoal

Tenho um sistema que roda em um jar…

tinha ouvido pessoas falar que se abrir o .class dele com alguns programa, ele ‘descompila’ e volta para .java…
eu fiz este teste, e conseguir… tem alguma forma de bloquear isso ?
o sistema meu por exemplo, é um sistema para empresas de sotfware, se eu vender assim, um programador vai abrir os class, e minha grana de suporte etc… já era…

qual outra alternativa?

Não tem como bloquear. O máximo que podes fazer é ‘bagunçar’ o código. Procure por ‘obfuscate java’ no google.

somente esse tipo de alternativa?

Mas como disseram, o maximo q ele faz pra proteger eh renomear classes, atributos e etc pra nomes curtos (1 letra soh, ou 2 quando acabar todas as letras, e assim por diante)

mas se eu fizer isso
pode aftar minha aplicação em desempenho essas coisas ?

pq trata-se de uma ferramenta de velocidade

Na teoria ele até otimiza: http://proguard.sourceforge.net/FAQ.html#optimization

eu baxei o proguard
mas nao entendi como usa ele
pode me dar uma breve explicação ?

Tem também o jproductivity (pago).

meu sistema tem 10 classes
mas lendo a documentação do proguard…
nao entendi muito bem
como eu faço pra usar ele nos meus class

A melhor maneira de proteger seu código é oferecendo algo que valha mais a pena para o cliente pagar manutenção/suporte pra você ao invés de tentar uma engenharia reversa. E em minha opinião isso é feito no seu programa em si, e não no mecanismo de segurança.

Por exemplo, onde trabalho pagamos algumas centenas de milhares de libras para uma empresa que nos fornece um determinado software que utilizamos em nosso sistema. Não porque não seríamos capazes de copiá-lo, mas porque a solução deles já está pronta e sai mais barato do que reinventar a roda, e eles ainda dão um suporte excelente pra gente.

Ou seja, se você quer ganhar dinheiro com suas 10 classes, sugiro fazer com que elas sejam uma solução onde você é o melhor fornecedor. Do contrário não vai ser nenhuma proteção de código que vai salvar seu negócio…

Ai que tá, acho que vai sair mais barato para ele fazer engenharia reversa em 10 classes do que pagar mais caro para ter uma manutenção e suporte…

haha
eh frodz
esse sistema que eu fiz é amarrado ao hardware da maquina, ou seja, não pode ser copiado para outra maquina, se caso alguem abrir o codigo e retirar a validação (já eras)…

ainda procuro alguem que saiba como mecher no proguard que possa me explicar

Exporta seu projeto pra um jar executavel
Testa esse jar pra confirmar que esta funcionando

Executa o proguard: /bin/proguardgui.bat (ou .sh no linux)
Em Input/Output clica em Add Input e seleciona seu .jar, depois clica em Add Output e digita o nome do novo .jar a ser gerado
Se seu codigo conter bibliotecas adiciona elas lah embaixo
Depois clica em Process e depois Process! Se nao der erro vai gerar seu jar obfuscado. Se der erro tenta denovo dessa vez desabilitando Shrinking e Optimization

[quote=Deluxe]meu sistema tem 10 classes
mas lendo a documentação do proguard…
nao entendi muito bem
como eu faço pra usar ele nos meus class[/quote].
Tem uma parte da documentação com exemplos de como usar. Já tentou? Se tiver mais problemas sugiro contatar o fórum deles.

Esses descompiladores funcionam mesmo? Das poucas vezes que testei, o código retornado não era exatamente válido. Tinha até goto no meio.

Usamos já num sistema e funcionou belezinha

[quote=victorcosta]Exporta seu projeto pra um jar executavel
Testa esse jar pra confirmar que esta funcionando

Executa o proguard: /bin/proguardgui.bat (ou .sh no linux)
Em Input/Output clica em Add Input e seleciona seu .jar, depois clica em Add Output e digita o nome do novo .jar a ser gerado
Se seu codigo conter bibliotecas adiciona elas lah embaixo
Depois clica em Process e depois Process! Se nao der erro vai gerar seu jar obfuscado. Se der erro tenta denovo dessa vez desabilitando Shrinking e Optimization[/quote]

ok, funciono
fica feio pra carai…
kkk