Pergunta

Desenvolvi um pequeno software.Quero fornecê-lo e executá-lo apenas comercialmente.Quero que ele seja executado nas máquinas que o compraram de mim.

Se alguém o copiar do computador do meu cliente e executá-lo no próximo computador, gostaria de parar de funcionar/executar o software.

Quais podem ser as formas de prevenir a pirataria do meu software?

Foi útil?

Solução

Adaptação de uma das minhas respostas anteriores:

Existem algumas maneiras de “ativar” o software copiado para tentar impedir a cópia casual do aplicativo.

No caso mais simplista, um código de registro (“CD key”) adquirido de você, possivelmente através do seu site, e é enviado ao usuário que o insere no programa ou instalador.Todo o processo pode ser feito basicamente offline;o próprio programa determina localmente se o código é válido ou inválido.

Isso é bom e fácil, mas é extremamente vulnerável ao compartilhamento de chaves - como não há "ligação para casa", o aplicativo não pode saber que milhares de pessoas diferentes estão usando a mesma chave que obtiveram na Internet, em uma biblioteca serial ou em seus amigos. .Também é razoavelmente fácil criar "keygens" que geram chaves aparentemente válidas que nunca foram emitidas pelos desenvolvedores.

Em seguida, entramos no registro online.Você ainda tem algum tipo de código, mas o programa ligará de volta para o servidor para determinar se o código é válido e geralmente exclusivo.Isso interrompe o compartilhamento básico de chaves, porque a empresa sabe se muitas pessoas de todo o mundo estão usando a mesma chave.Talvez haja algum tipo de identificação envolvida usando o endereço MAC também, com registros infinitos permitidos no mesmo hardware, mas talvez um número limitado no que parece ser um computador diferente.

Isso ainda é muito fácil e impede o simples compartilhamento de chaves.Na verdade, as pessoas terão que quebrar o software ou falsificar a resposta do servidor para superar isso.

Às vezes, o programa em si é parcialmente/principalmente criptografado e só é descriptografado na etapa de registro online.Dependendo de quão bem isso é ofuscado, pode ser muito difícil e demorado decifrar.Bioshock foi um exemplo notável disso - estreando com um novo esquema de criptografia/proteção contra cópia que levou cerca de duas semanas para ser quebrado desde o lançamento.

Finalmente, um aplicativo particularmente protegido pode permanecer em contato constante com o servidor, recusando-se a funcionar se a conexão for cortada.

Se você tiver certeza de que todos os seus usuários terão conexões confiáveis ​​com a Internet, isso pode ser considerado uma forma bastante forte de proteger o aplicativo, ao custo da privacidade e de alguma desconfiança do usuário em relação ao spyware.

Neste caso, para contornar a ativação, eles precisariam falsificar o próprio servidor.Emuladores Steam e servidores privados de WoW são um exemplo disso.E no final, nada é indecifrável.

Outras dicas

Em poucas palavras: você não pode.

Mesmo sistemas muito sofisticados (por exemplo, teclas do dongle) podem ser contornados. Acho que sua melhor ligação é dar um código aos seus clientes e ter uma verificação on -line para esse código, para que não possa ser usada duas vezes.

Claro, isso pode ser contornado também, mas ...

Como Nico disse que você realmente não pode.

Uma solução simples pode ser gerar códigos (registro/ativação) que são baseados em hardware ou software instalado no computador específico - por exemplo, ID de serial da placa de vídeo ou tempo de criação C:/Windows.

Eu tenho uma ideia pode ser que funcione. O que podemos fazer, faremos um campo de banco de dados cercado e esse campo ficará vazio pela primeira vez assim que instalar meu software em alguma máquina, ele lerá o endereço MAC + ID do processador de série MAC + e criar um valor cercado Com a combinação desses três e escreva naquele campo que deixei vazio pela primeira vez.

Depois disso, toda vez que meu aplicativo lerá esses três valores e recriará o valor incrustado da mesma maneira e comparar com o valor desse campo de banco de dados. Se o valor do campo do banco de dados e o valor do campo Ercrroupted regenerado for igual, isso significa que o computador é o mesmo outro sábio, ele está instalado em outra máquina neste caso, você exclua todo o código e pode tornar o sistema instável para punir o pessoa também :) ... Por favor, deixe -me saber sobre sua opinião sobre essa ideia.

A melhor maneira é usar algum tipo de bloqueio de hardware no qual seu código de licença contém informações criptografadas sobre a máquina na qual ela será executada. Seu software verá essas informações e combinará com o computador atual e, se a correspondência for bem -sucedida, a licença será considerada válida.

Claro, qualquer esquema pode ser quebrado por alguém na face do planeta, mas isso não significa que você não deve usar um esquema de proteção.

Se você está procurando um esquema pronto para isso, dê uma olhada Criptólico.

Empresas como a nossa (sistemas Wibu-Systems), Safe-Net e Flexera (caros) oferecem soluções sem dongle, bem como as baseadas em hardware. Mas _-simon estava certo, pois um dongle é a única proteção vestida de ferro. Todos os sistemas baseados em software podem ser quebrados; Só que alguns são mais difíceis que outros. Soluções realmente boas baseadas em hardware são efetivamente inocentes. Ninguém ainda quebrou o codemeter, a menos que a implementação fosse falha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top