Pergunta

Estou pensando em implementar um bom mecanismo de licenciamento que tenha uma boa resistência contra a pirataria. O mecanismo necessário não deve usar uma conexão com a Internet a cada vez que o software é usado. Estou pensando em um mecanismo baseado em IDs de hardware, etc. Vocês têm sugestões melhores? Quais são os parâmetros/algoritmos/características que preciso me preocupar para fazer um mecanismo de licença de prova de hackear?

Foi útil?

Solução

Primeiro de tudo, nada é à prova de hackers, então eu não gastaria muito tempo protegendo seu software.

A desvantagem de um mecanismo baseado em IDs de hardware é quando um usuário compra um novo computador ou atualiza a maior parte do computador que ele precisa para atualizar a chave também.Hwhash é uma boa implementação do hardwareid, mas acho que existem mais soluções (gratuitas).No trabalho, usamos hardlock e Hasp Chaves, mas essas são soluções USBKEY que não são muito eficientes para pequenas aplicações.

Outras dicas

Idealmente, você precisa de algo que seja independente do sistema operacional.

Eu recomendaria que você incorpore a proteção da licença no seu código ou envolva seu aplicativo nele de tal maneira que não possa ser executado sem o código de proteção de cópia ter executado primeiro.

Seria melhor se o seu aplicativo precisar de um arquivo de chave de licença para operar e que isso não seja gerado localmente.

Uma maneira de fazer isso é que seu aplicativo gera alguma forma de código de imagem com base no hardware em sua execução inicial. Isso é fornecido a você e, em troca, você fornece a chave de licença que permitirá que o código seja executado. É melhor basear a imagem de hardware em torno da CPU e da placa -mãe, pois isso mudará menos frequentemente.

Seu aplicativo. deve verificar contra a imagem de imagem e licença de hardware sempre que for executada.

Se você quiser seu aplicativo. O License Time Limited, e também deve acompanhar quanto tempo ele foi executado e incorporado no arquivo da chave da licença.

Não se esqueça de criptografar o arquivo de licença.

Além disso, não se esqueça de dificultar a compilação reversa do seu executável pelo uso de um dotfuscator ou similar.

Verifique esta pergunta: Qual técnica de proteção de cópia você usa?

Ele também vincula a outras questões relacionadas.

Eu ficaria muito cauteloso com os mecanismos de proteção de software publicados, pois são muito mais propensos a publicar hacks. Você provavelmente é melhor usar algumas das técnicas para obter um ID persistente único e usá -lo para rolar seu próprio mecanismo de proteção. Eu também acho que é uma idéia ruim verificar a licença sempre que você executa o programa, pois isso leva o hacker à localização do seu mecanismo de proposição. IMO, você é melhor verificar a licença de maneira mais aleatória e mais de uma vez por sessão.

FWIW, eu uso bloqueios de hardware (HASP) para o meu software de mesa alta e licenciamento baseado em ID de dispositivo em soluções móveis. Se você estiver vendendo pequenas quantidades de software de alto custo em um mercado vertical, o IMHO, um bom mecanismo de proteção de licenças faz sentido e os dongles de hardware funcionam bem. Minha experiência foi que as pessoas usarão mais licenças do que compram se não estiver em vigor. Para um software de alto volume e baixo custo, eu tende a viver com a pirataria com base no aumento do tamanho da base de usuários e da visibilidade do produto.

Estou pensando em implementar um bom mecanismo de licenciamento que tenha uma boa resistência contra a pirataria. O mecanismo necessário não deve usar uma conexão com a Internet a cada vez que o software é usado.

Então, que tal uma verificação on -line periódica da licença?

Quando o usuário faz login na primeira vez, o usuário verifica a instalação em sua conta e um arquivo de licença é armazenado no PC dos usuários. Este arquivo de licença é criptografado e contém todos os dados necessários para identificar exclusivamente a licença. Tudo isso é armazenado no seu servidor.

O arquivo de licença expira no número definido de dias ou até meses. O login depois que o arquivo expira as verificações em relação à conta e verifica sua legitimidade. Você pode até considerar gerar um novo arquivo de licença no momento.

Deve haver algumas inteligências que dão alguma margem de manobra no caso de a Internet dos usuários estar inativa e a licença não pode ser registrada. Talvez 7 dias.

Se o software for reinstalado em um novo computador, o usuário precisará repetir o processo de verificação.

Como os outros declararam, não há como vencer um pirata determinado, pois essa pessoa invadirá o código, mas isso deve impedir ou desacelerar a pirataria casual.

Você pode conferir SLP da Microsoft - Eu não usei, mas definitivamente parece interessante (você sabe, se você gosta de coisas do MS ...)

Um ponto importante a ser observado - nenhum mecanismo de licenciamento o protegerá da pirataria ou até a reduzirá substancialmente. Por definição, o mecanismo de licenciamento será do lado do cliente - o que é inerentemente quebrável. Dê uma olhada no que aconteceu com o DRM ...

Sua diretriz deve, portanto, ser usabilidade - a intenção deve Seja usá -lo como uma política geral, os mocinhos estarão confortavelmente limitados ao que deveriam fazer, e os bandidos - bem, os bandidos vão contornar sua intenção de qualquer maneira, sua melhor esperança é Torne mais trabalho.

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