Pergunta

O que é a melhor maneira de assegurar a utilização / carregamento de uma DLL com um arquivo de licença?

Foi útil?

Solução

Um par de coisas que você pode querer considerar:

Verifique somar a DLL. Usando um hash criptográfico função , você pode armazenar esta dentro do arquivo de licença ou dentro da DLL. Isto fornece um método de verificação para determinar se o meu arquivo DLL original unhacked, ou se é o arquivo de licença para este DLL. Um simples poucos byte trocando técnicas podem assumir rapidamente a sua função hash fora da trilha batida (e, portanto, não é fácil de reproduzir).

Não guarde você hash como uma string, dividi-lo em calções não assinados em lugares diferentes.

Como Larry disse, um endereço MAC é bastante comum. Há muitos exemplos de como conseguir que no O Projeto de Código , mas esteja ciente de que é fácil falsificar estes dias.

A minha sugestão, deve ser usado / chaves público-privadas para a geração de licença.

Em suma, os modos de ataque vai ser binário (modificar as instruções do seu arquivo DLL) para proteger contra isso, ou geração de chaves assim que cada usuário de licença, máquina, e até mesmo a instalação específica.

Outras dicas

Você pode verificar se há uma dentro de licença de DllMain () e morrer se não for encontrado.

Ele também depende de como seu algoritmo de licença funciona. Eu sugiro que você olhar em usar algo como um Diffie-Hellman chave de câmbio (ou mesmo RSA ) para gerar algum tipo de público / chave privada que pode ser passado para seus usuários, com base em algumas informações.

(Dependendo da aplicação, eu sei de um caso em que eu escrevi o código de licença no contrato para uma empresa, eles usaram um endereço MAC , e alguns outros dados, hash-lo, e criptografada o hash, dando-lhes o "valor fundamental", se o número de registo foi correto). Isso garante que o arquivo de chave não podem ser movidos, (ou dado) para outra máquina, assim, 'roubar' o software.

Se você quiser cavar hackers a evitar mais profundo e, isso é um todo 'nother tópico ....

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