ti-enxame.com

Como faço para proteger contra cópia meu aplicativo Java?

Desejo vender meu aplicativo Java usando Paypal. Quando um pagamento é recebido, o cliente recebe por e-mail um link de download único para o meu aplicativo.

Minha pergunta é: como impedir que as pessoas enviem o arquivo .jar para seus amigos/o carreguem na internet?

Obviamente, eu preciso de algum tipo de verificação no aplicativo que permita que ele seja executado em um computador. E esse é outro problema: não quero que um cliente tenha limitações em um computador, ele deve executá-lo em casa e no trabalho etc.

Talvez algum tipo de CD-Key funcionasse? Existe algum recurso de chave de CD para Java lá fora? Ou devo criar meu próprio algoritmo? Aí vem outro problema, a engenharia reversa ..

Por favor me ajude a resolver isso :)

30
cragiz

A maneira mais comum de lidar com isso é: o cliente oferece dinheiro, você gera uma chave de desbloqueio exclusiva e fornece isso ao cliente. A chave deve ser uma chave de desbloqueio válida e deve codificar informações de identificação sobre o usuário. O Cliente usa essa chave para instalar em quantos computadores quiser, ou é permitido pela licença.

Não se preocupe com engenharia reversa. Seu produto, se é popular, será pirateado - você encontrará as chaves de desbloqueio on-line se você se esforçar o suficiente. Se quiser, você pode considerá-lo um elogio - alguém gostou do seu software o suficiente para roubá-lo. Conforto frio, eu sei, mas a alternativa é entrar em uma corrida armamentista com os piratas, e você não vencerá. No final, alguns por cento da população roubam software, e você não pode fazer muito sobre isso. Você pode usa as informações de identificação da chave, se seu esquema é forte o suficiente, para rastrear quem liberou a chave em primeiro lugar.

30
Michael Petrotta

Na verdade, existem várias soluções de gerenciamento de licenças que podem ajudar, mas o problema REAL é que todas elas podem ser quebradas. Eu pessoalmente tentei o mais caro ao mais barato. Finalmente, eu rolei o meu próprio e verifico os detalhes do PC do software (ID do Mac, etc.) com relação aos detalhes registrados no meu servidor toda vez que o software é executado. Como meu software está fortemente ligado à Internet, tudo bem, mas tenho certeza de que ele estará quebrado um dia desses.

O que você provavelmente precisa é policiar a Internet regularmente e descobrir onde seu software está sendo pirateado, ao contrário da crença popular de que você pode realmente detê-los na maioria dos casos. Basta enviar um DMCA ao site de download (a maioria deles estará em conformidade) e você poderá remover o software em cerca de 80% dos casos. Eu já fiz e experimentei isso no meu software. Algumas pessoas não o removem, mas descobri que nos 1,5 anos em que faço isso, minhas vendas melhoraram.

Eu também uso um serviço - http://spotpiracy.com que me ajuda a encontrar esses links além da minha própria pesquisa manual (eu tenho um cara dedicado a isso). :)

9
Cyril Gupta

Todo mundo tem sua própria opinião sobre esse assunto, portanto, espere muitos conselhos diferentes. Aqui está a minha opinião:

  • 1. Ofusque seu código (recomenda-se proguard)
  • 2. Ofereça uma versão GRATUITA com todos os recursos por um período experimental
  • 3. Use uma rotina de número de série com base no e-mail do usuário registrado ou em outras informações exclusivas

No geral, você terá que aceitar uma certa quantidade de pirataria, mas se o seu pedido for digno, as pessoas pagarão por isso. Pessoas honestas serão honestas e a proteção contra cópias não tornará honestas as pessoas desonestas.

4
Paul Gregoire

Na minha opinião, se você não sabe exatamente como protegerá seu código-fonte com eficiência, não comece a tentar fazer algo em conjunto com base no hardware. Será muito fácil quebrar e, provavelmente, apenas irritar seus clientes.

Eu sugiro que você dê uma olhada em como Atlassian faz isso. Eles vendem o software Java, e aparentemente se saem muito bem. http://www.atlassian.com/ Tente fazer o download, por exemplo, do JIRA e jogar com uma instalação, o que lhe dará uma boa idéia de como o esquema de licenciamento funciona e o que os usuários podem razoavelmente esperar de um software profissional.

3
Thorbjørn Ravn Andersen

Você deve implementar os recursos de licenciamento.

Aqui está um recurso interessante para iniciantes: http://members.chello.at/stefan-schneider/JavaLicenseKit.html

2
user333306

Nos meus velhos dias de c ++, eu fico armado para enfrentar a pirataria usando a proteção de código de endereço MAC, muito agradável e realmente ninguém roubou meu software, além da proteção de endereço mac, porque eu sempre forço o sistema operacional a reler o mac real, evitando substituições de mac. Isso ocorreu na codificação C++, com acesso direto aos recursos locais.

hoje não é esse o caso, nem nos aplicativos Java nos quais o código está localizado em arquivos .class que sempre podem ser decodificados de volta ao código-fonte original (sim, é possível e muito fácil de encontre ferramentas para fazer isso).

eu acho que, como resumo, é impossível proteger Java contra a pirataria. não encontro como os velhos dias dourados de c ++ :)

1
christian