Proteção dos direitos de criação de softwares

Galera,
gostaria de saber, se ao gerar um “.jar” de uma aplicação, tem como uma pessoa não autorizada pegar este “.jar” e chegar nos arquivos “.java”. Minha duvida se baseia no modelo java que diz que uma vez compilado o código, são gerados arquivos compilados com um pseudo-código de mais baixo nível “Bytecodes” para que a JVM interprete as linhas de código à medida em que são necessárias, em compiladores fiquei sabendo que dependendo do ponto onde se esta na copilação, não há volta ou volta perfeita (engenharia reversa), sei que existem vantagens na engenharia reversa para alguns casos.
Gostaria de saber a opinião de vocês sobre essa possibilidade. Obrigado … [ HcK ]

Quando se diz que “nao ha volta ou volta perfeita”, tem um pouco de mentira ai. Existe maneiras de fazer uma “descompilação” do codigo. Se voce procurar no google provavelmente vai achar programas que fazem isso. Muitos desses programas nao conseguem fazer toda a engenharia reversa perfeita, sempre deixando algo de diferente no codigo. Aqui eu tenho um software que faz esse serviço muito bem. Ele consegue transformar os arquivos .class em .java, fica um codigo razoavelmente legivel, pois tem algumas instruções ou metodos que no codigo origial esta identado e no codigo revertido ele traz em uma linha soh, ai fica aquela linha de quilometros(mas so em alguns casos). Outro detalhe eh que ele nao gera os comentarios, mas acho que isso nem um descompilador consegue fazer, pois no bytecode nao sao gerados os comentarios(me corrijam se stiver errado).

a minha duvida eh, e se depois de gerado o .jar e feita assinatura ainda pode ser descompilado?

Ainda dá. Mas é tão importante proteger o código assim? Open-source pode ser uma alternativa mais viável.

Existe programas duvidosos que “embaralham” o seu código, dificultando a engenharia reversa, mas eu acho desnecessário.

É pessoal este é realmente um assunto polêmico, se você levar para o lado Open-source realmente se preocupar com estes detalhes é besteira mas se o intuito é criar um software para venda no mercado a coisa muda de figura pois você pode passar de 2 a 3 anos desenvolvendo um software e de repente aparce um software concorrente ao seu que se assemelha demais às funcionalidades de seu software conseguidas através de engenharia reversa.
Não sei se estou sendo correto em falar isso mas a equipe que constroi um produto em cima de uma engenharia reversa já começou errado e com certeza não se firmará no mercado, então passamos a bola para o cliente onde os mesmos devem saber se não estão trocando gato por lebre. Os obfuscadores realmente não são 100% apenas embaralham o código como disse marcosbrandao e tentar proteger d+ o código é uma perda muito grande de tempo em algo que pode ser revertido.

Concluo então de minha parte que p melhor a ser feito é desenvolver algo realmente bom para venda proprietária e mostrar que sempre haverá atualizações ou inovações fazendo com que o cliente não compre de quem apenas copiou o programa.

Valew ai galera, muito bons os levantamentos de vocês. Tahnks !!

Vamos postar mais ai. acho que da para discutir + sobre o assunto.

[quote=tiagosarno]É pessoal este é realmente um assunto polêmico, se você levar para o lado Open-source realmente se preocupar com estes detalhes é besteira mas se o intuito é criar um software para venda no mercado a coisa muda de figura pois você pode passar de 2 a 3 anos desenvolvendo um software e de repente aparce um software concorrente ao seu que se assemelha demais às funcionalidades de seu software conseguidas através de engenharia reversa.
Não sei se estou sendo correto em falar isso mas a equipe que constroi um produto em cima de uma engenharia reversa já começou errado e com certeza não se firmará no mercado, então passamos a bola para o cliente onde os mesmos devem saber se não estão trocando gato por lebre. Os obfuscadores realmente não são 100% apenas embaralham o código como disse marcosbrandao e tentar proteger d+ o código é uma perda muito grande de tempo em algo que pode ser revertido.

Concluo então de minha parte que p melhor a ser feito é desenvolver algo realmente bom para venda proprietária e mostrar que sempre haverá atualizações ou inovações fazendo com que o cliente não compre de quem apenas copiou o programa.

Valew ai galera, muito bons os levantamentos de vocês. Tahnks !!

Vamos postar mais ai. acho que da para discutir + sobre o assunto.
[/quote]

Olha, se o projeto é tão grande assim (anos de desenvolvimento), vai ser inviável a engenharia reversa pois sem comentários, identação correta e nomes trocados, vai ser muito difícil de se copiar o seu programa, pois mesmo com tudo certinho, as vezes eu não entendo meus próprios programas hehe!

Também acredito que no Brasil, o que mais dá lucro é você dar o suporte ao seu programa, e não a venda de licenças. Tem gente que ganha a vida instalando e configurando programas para empresas!

Pô kknd, agora já me sinto mais aliviado, mas é a real mesmo, vira um espaguete o código e de dificil entendimento e concordo plenamente com o que disse.

Não sei se estou certo nisso que vou falar, mas se você desenvolver um software e tiver uma empresa registrada e patentiar o programa, você tem o copyright do mesmo e havendo uma suspeita de qualquer vestigio de linhas copiadas do códigos em outros programas podem levar a processos na justiça através da lei dos direitos autorais e copyright. Não tenho certeza, me corrijam se estiver errado.