Ofuscar o código

E ai galera,

To precisando de um ofuscador de codigos pra Java que ofusque o .war, alguem sabe de algum, pois os que eu conheço ofuscam somente .class

Vlw!
[]'s

pra que vc quer isto?

Po, falando nisso, por que é necessário um ofuscador??
Sempre quis saber…
Sei que ele “embaralha” o teu código, não é?!

[]s

Na realidade por uma questão de falta de revisão de contrato eu preciso mandar os fontes para o cliente, mas na realidade os fontes não tem que ir de maneira limpa, mesmo pq trabalha dentro do cliente o concorrente, logo eu preciso de um ofuscador pra poder avacalhar até o mapeamentos da minha aplicaçao (JEE).

Eu tenho um ofuscador mas o mesmo funciona soh com arquivos com extensao .class, e eu quero ofuscar todo a minha aplicaçao, no caso o meu arquivo WAR.

ja imaginava que era pilatragem…

de boa… hj em dia e muito mais facil achar desenvolvedores bem intencionados do que mals… com isto eles sabendo vc so vai se ferrar…

Não brother, pilantragem nao, é um trabalho de simplesmente um ano e meio, será que é legal o concorrente pegar o código e vender sendo que quem desenvolveu fui eu?

Uma coisa eh compartilhar ideia, componentes, e outra é voce pegar o seu suor e dar pro outros ganhar dinheiro as suas custas.

Se puder me ajudar bem, senao por favor, ja dizia o ditado:

“Muito ajuda quem nao atrapalha!”

[quote=uchoaaa]Po, falando nisso, por que é necessário um ofuscador??
Sempre quis saber…
Sei que ele “embaralha” o teu código, não é?!

[]s[/quote]

Sim, ele “ofusca” seu código tornando-o meio ilegível. No caso do Java, dá pra depurar um código ofuscado, mas perde-se muito tempo e a lógica fica muito confusa de se entender. Além disto, existem ofuscadores que até melhoram a performance da aplicação.

Sobre o termo “pilantragem”, acho meio forte. Estamos falando de um projeto. Será que a Ferrari libera os projetos dela? Será que a Nokia libera? A Nintendo? O Google?
Então pq eu vou liberar o meu? Só se for pra ganhar alguma coisa com isto (acreditem, o pessoal do software livre ganha).

Voltando ao assunto, ofuscadores não resolvem alguns problemas de segurança, que deverão ser implementadas de uma outra maneira. Eu ainda acho esta parte deficiente no Java.

Hmm, valeu marciosantri, saquei. :stuck_out_tongue:

Uma coisa allanft… Se teu código já vai pro cliente, ele já não pode utilizar como bem entender??
Tipo, mesmo ofuscado, nada o impede de comercializa-lo, não?! Que é o que incomoda…
Certamente vai atrapalha-lo para manuntenção, atualização e tudo mais, mas o produto ainda vai ser dele…

[]s

[quote=uchoaaa]Hmm, valeu marciosantri, saquei. :stuck_out_tongue:

Uma coisa allanft… Se teu código já vai pro cliente, ele já não pode utilizar como bem entender??
Tipo, mesmo ofuscado, nada o impede de comercializa-lo, não?! Que é o que incomoda…
Certamente vai atrapalha-lo para manuntenção, atualização e tudo mais, mas o produto ainda vai ser dele…

[]s[/quote]

Nem sempre. Existem casos de software onde o que se vende é o direito de uso e não o código fonte em si. O Microsoft Office e o Oracle são exemplos deste tipo de software.

http://www.allatori.com/

[quote=marciosantri][quote=uchoaaa]Hmm, valeu marciosantri, saquei. :stuck_out_tongue:

Uma coisa allanft… Se teu código já vai pro cliente, ele já não pode utilizar como bem entender??
Tipo, mesmo ofuscado, nada o impede de comercializa-lo, não?! Que é o que incomoda…
Certamente vai atrapalha-lo para manuntenção, atualização e tudo mais, mas o produto ainda vai ser dele…

[]s[/quote]

Nem sempre. Existem casos de software onde o que se vende é o direito de uso e não o código fonte em si. O Microsoft Office e o Oracle são exemplos deste tipo de software.[/quote]

Mas pelo jeito não é caso do allan, não?! Ele se queixava justamente que iam comercializa-lo…

Porque, segundo o próprio autordo tópico, o código-fonte deve ser disponibilizado para o cliente. A menos que seus contratos de uso com estas empresas sejam muito diferentes dos normais elas não têm essa obrigação.

Nenhum ofuscador (principalmente os que atuam em código fonte e não em binários) vai te dar qualquer segurança e ainda podem prejudicar a sua própria manutenção do sistema. Refacotrar um código Java com uma IDE é extremamente simples. Se o ofuscador atuad em bytecodes a sensação de segurança aumenta um pouquinho mas ainda não é suficiente, se aluém realmente quiser pode levar seu código fácil.

A melhor proteção para isso é advogado + contrato. Se o cliente deixar seu rival rouba o código você o processa. Existem leis sobre estas coisas.

Meu amigo, se te obrigaram a fornecer o código fonte pelo contrato - isso é fato e pronto.

Você deveria ter lido o contrato direito antes de ter assinado. Mesmo que perca um ano de trabalho, seja honesto e arque com o peso da sua assinatura no contrato.

Ofuscação de código não vai trazer segurança alguma. Embora não existam desofuscadores de código, um bom programador poderia pegar o seu código, analisar, e começar a arrumar a bagunça. O máximo que você vai conseguir é fazer eles perderem algum tempo.

Os ofuscadores não são capazes de alterar a estrutura do seu programa. A ofuscação se limita a bagunçar com a endentação e comentários. Renomear todas as classes, métodos, atributos e variáveis para coisas sem sentido. Trocar fors por whiles e do-whiles ou vice-versa. Inverter condições de ifs e trocar o bloco “então” com o “senão”. Trocar ifs por switches e vice-versa. Trocar expressões lógicas e matemáticas por equivalentes.

Nos casos mais brutos quebrar um método em vários ou unir diversos métodos em um só.

Alguns podem até apelar e critografar strings e números e sempre referenciá-los com funções encriptadoras e desencritadoras. Mas esses casos já são perigosos porque podem mudar o comportamento do programa se isso não for bem feito.

Mas no fim, nada disso muda a estrutura do programa de fato. Então, uma pessoa que manja bem de java e está bem determinada conseguiria desofuscar o código. Eu já fiz isso.

[quote=pcalcado][quote=marciosantri]
Sobre o termo “pilantragem”, acho meio forte. Estamos falando de um projeto. Será que a Ferrari libera os projetos dela? Será que a Nokia libera? A Nintendo? O Google?
Então pq eu vou liberar o meu? Só se for pra ganhar alguma coisa com isto (acreditem, o pessoal do software livre ganha).
[/quote]

Porque, segundo o próprio autordo tópico, o código-fonte deve ser disponibilizado para o cliente. A menos que seus contratos de uso com estas empresas sejam muito diferentes dos normais elas não têm essa obrigação.

Nenhum ofuscador (principalmente os que atuam em código fonte e não em binários) vai te dar qualquer segurança e ainda podem prejudicar a sua própria manutenção do sistema. Refacotrar um código Java com uma IDE é extremamente simples. Se o ofuscador atuad em bytecodes a sensação de segurança aumenta um pouquinho mas ainda não é suficiente, se aluém realmente quiser pode levar seu código fácil.

A melhor proteção para isso é advogado + contrato. Se o cliente deixar seu rival rouba o código você o processa. Existem leis sobre estas coisas.[/quote]

Hum… Não tinha visto isto. Neste caso, retiro o que eu disse.

[quote=uchoaaa]Hmm, valeu marciosantri, saquei. :stuck_out_tongue:

Uma coisa allanft… Se teu código já vai pro cliente, ele já não pode utilizar como bem entender??
Tipo, mesmo ofuscado, nada o impede de comercializa-lo, não?! Que é o que incomoda…
Certamente vai atrapalha-lo para manuntenção, atualização e tudo mais, mas o produto ainda vai ser dele…

[]s[/quote]

Meu codigo vai pro cliente, mas dentro deste cliente tem um concorrente direto deste projeto, no caso de manutençao, ira continuar sendo dada por mim mesmo, o que acontece é que como eh de direito do cliente entao iremos enviar, mas o cliente mesmo nao fará nada com isso, mas eu nao sei ate onde vai a responsabilidade com estes codigos, logo o meu medo é cair nas maos de quem nao deve.

[quote=Sergio Figueras]Meu amigo, se te obrigaram a fornecer o código fonte pelo contrato - isso é fato e pronto.

Você deveria ter lido o contrato direito antes de ter assinado. Mesmo que perca um ano de trabalho, seja honesto e arque com o peso da sua assinatura no contrato.[/quote]

Infelizmente foi um erro do setor comercial, são eles quem vendem, eu só desenvolvo, e ate entao é do meu conhecimento que o concorrente esta lá no cliente recentemente, mesmo pq estamos falando de empresas publicas, a minha e o cliente, ja o concorrente é uma empresa privada.
Daí a gravidade.

No caso de CONTRATO + ADVOGADO, como sugeriram anteriormente, é complicado, pois o tempo é curto. Lembrando que a minha intensao com o ofuscador é simplesmente dificultar qualquer boicote que possa acontecer com o projeto.

Obrigado Thingol, vou verificar.

meu amigo se vc foi forçado a dar o fonte no contrato… e este fonte vier tudo ofuscado vc estara promovendo o seu concorrente que entregara o seu fonte em perfeitas condições… não pense que por não entenderem o codigo vão sempre apelar pra vc para dar manutenção… engano seu… isto não existe mais… qdo vão preferir pegar outro programador bom e que não ofusque os fontes… e programador é oq não falta… hj em dia… e como ja foi dito o maximo q ira conseguir fazer e dar mais trabalho a outro pra desofuscar seu codigo… e perder a confiança da empresa dando credito ao concorrente que entrega o codigo limpo… por isto pense bem antes de fazer coisas deste tipo…