Existe a possibilida de "abrirem" meu .class pra lerem o código?

12 respostas
F

Senhores,

Existe alguma possibilidade de abrirem o código do meu programa para análise (.class) ? Através de , sei-lá , engenharia reversa…?

12 Respostas

marciosantri

Sim, e é a coisa mais fácil do universo.

O que vc pode fazer para dificultar um pouco o processo é utilizar ofuscadores.

F

valeu, obrigado.

ViniGodoy

marciosantri:
Sim, e é a coisa mais fácil do universo.

O que vc pode fazer para dificultar um pouco o processo é utilizar ofuscadores.

Não exagere. Existe a possibilidade, mas não é tão fácil assim. Apenas alguém realmente mal intencionado, com conhecimento técnico profundo do “assembly java” e realmente determinado irá conseguir descompilar sua classe.

Código, de uma maneira geral é complexo, quanto mais quando você usa técnicas como polimorfismo e reflexão. As vezes, mesmo com o código aberto e comentado, é difícil de entender.

marciosantri

ViniGodoy:
marciosantri:
Sim, e é a coisa mais fácil do universo.

O que vc pode fazer para dificultar um pouco o processo é utilizar ofuscadores.

Não exagere. Existe a possibilidade, mas não é tão fácil assim. Apenas alguém realmente mal intencionado, com conhecimento técnico profundo do “assembly java” e realmente determinado irá conseguir descompilar sua classe.

Código, de uma maneira geral é complexo, quanto mais quando você usa técnicas como polimorfismo e reflexão. As vezes, mesmo com o código aberto e comentado, é difícil de entender.

Não é exagero. O Cavaj faz isto com uma facilidade extrema. Entender o código são outros 500. Já vi códigos que mesmo com o programador explicando são horríveis de entender…

LPJava

a segurança foi para o espaço!!! entao… :frowning:

marciosantri

E já faz tempo. É um problema que eu tenho com Java que ainda não consegui resolver. E, com todo respeito à comunidade Open Source, para quem trabalha com aplicativos comerciais e enfrenta uma concorrência cada vez mas voraz isto é terrível.

marciosantri

Na verdade, segurança é uma coisa complexa de se afirmar. Mesmo com nossos aplicativos Delphi, uma pessoa pode verificar seus pontos de trava e substituí-los através de editores Assembly. Uma vez até discordei disso do Daniel Tritone, mas dou o braço a torcer. A diferença para Java é que a coisa é mais explícita. Até mesmo o Oracle tem a sua super segurança quebrada por uma simples senha do servidor que o hospeda (root, no caso do linux e Administrat(d)or no caso do Windows).

Luca

Olá

Desde que comecei em informática há alguns anos atrás no tempo do Fortran rodando no IBM 1130, /360, /370, etc., as coisas ainda não mudaram. Sempre foi necessário vender software usando um contrato que nos resguardasse um mínimo de direitos.

É claro que além dos contratos outras medidas podem ser adotadas. Eu fiz muitas coisas neste sentido mas o que funcionou melhor foi trava de hardware.

[]s
Luca

marciosantri

Luca:
Olá

Desde que comecei em informática há alguns anos atrás no tempo do Fortran rodando no IBM 1130, /360, /370, etc., as coisas ainda não mudaram. Sempre foi necessário vender software usando um contrato que nos resguardasse um mínimo de direitos.

É claro que além dos contratos outras medidas podem ser adotadas. Eu fiz muitas coisas neste sentido mas o que funcionou melhor foi trava de hardware.

[]s
Luca

Blz, Luca. Mas quando eu falo segurança, me refiro também à segurança da integridade dos dados para o dono da empresa que utiliza seu sistema e não à sua empresa. Do que adianta vc falar pro cara que seu sistema é seguro sendo que um funcionário mal itencionado pode simplesmente pegar seu fonte, achar seu algoritmo de trava de hardware e invadí-lo? Ou invadir o banco de dados e modificar informações com más intenções?

Contratos são indispensáveis, resguardam nosso financeiro, mas não a integridade dos dados.

Sobre cópia de fontes por causa dos nossos concorrentes, é uma coisa meio complexa de ocorrer até pq é difícil entender um fonte de outra pessoa. Coloque um ofuscador aí e a coisa complica muito mais. Mas tenha a certeza que vc está vulnerável e isto é bem maior quando se usa Java (claro que existem segurança de servidores, etc, etc que já é um outro assunto).

Acho q vc, assim como eu, tenta de todas as maneiras possíveis dificultar esses acessos. Mas não dá aquela sensação de insegurança?

ViniGodoy

Não tem melhor segurança do que uma boa política de backup. Dependendo do software, garantir a segurança física do local onde o software pode ser instalado e quem tem e quem não tem acesso aos fontes também pode ser necessário.

E também é necessário ter um bom treinamento de funcionários. Mas, nenhuma paranóia é suficiente para combater invasões que venham de dentro da empresa.

Luca

Olá

É claro que isto pode acontecer mas isto não costuma ser feito em Java. Então o problema é exatamente igual ao que aconteceria se o sistema fosse escrito em outra linguagem.

Como você imagina que são feitos os crackers?

Antigamente a gente editava o código fonte em hexa e mudava as coisas na raça. É por isto que uma das minhas defesas era contagem CRC.

É como escrevi, o que vale é o contrato de venda. E quase sempre vendi software com fontes tanto em C, Fortran, Clipper como em Java.

[]s
Luca

marciosantri

Vejo que nossos “negócios” são diferentes. Aqui na empresa não temos interesse em vender os fontes. No seu caso, a coisa realmente é diferente.

Faz muito tempo que não vejo alguém fazer isso em aplicações comerciais, hehehehe.

Criado 19 de maio de 2007
Ultima resposta 19 de mai. de 2007
Respostas 12
Participantes 5