Usuário com melhor resposta
Urgente - Proteger software

Pergunta
-
Olá a todos!
Estou a desenvolver uma windows application em VB.net e preciso de bloquear o programa qto ao numero de instalações, cópias e restringir
a instalação apenas á empresa que nos comprou o software!
O programa é distribuido em CD e precisava de proteger o software de forma
a conseguir controlar o nr de instalões do mesmo!
Será que alguém me poderá ajudar?
Respostas
-
Olá,
Uma estratégia interessante é adotar um processo baseado na ativação do seu software através de um arquitetura baseada em chaves assimétricas (público/privada). Dentro do seu programa vc insere uma rotina onde durante a instalação o usuário deve informar alguns dados. Estes dados são transmitidos para um webservice localizado no fornecedor do software, que valida a informação e fornece uma chave de ativação.
Na prática, vc irá incluir uma função no "setup" do seu software para que ele utilize uma chave pública em cada instalação, comunicando-se com a chave privada única localizada no fornecedor através de um webservice. Embora vc tenha um overhead administrativo, o controle sobre cada instalação é bastante eficiente.
É claro que, a chave privada deve ser armazenada e manuseada com a segurança adequada.
No Visual Studio 2005 vc pode utilizar a classe RSACrytpoServiceProvider
[]'s !
Weber Ress
Todas as Respostas
-
Procure por um software chamado HandProt, é de uma empresa brasileira e dê uma olhada no site da empresa www.squadra.com.br, lá você vai ver o poderio bélico da ferramenta.
Pelo visual sudio não sei como fazer. Se você descubrir, poste no Fórum para poder passar o conhecimento para todos.
Se esta resposta foi útil ou respondeu sua pergunta, marque-a como resposta e/ou como útil.
-
Tem mil e um recursos para isso. O HandProt é um. Mas até hoje eu não conheci um recurso que seja 100% não "hackeável".
Por outro lado...
Se sua aplicação tem n camadas, uma possibilidade é que a parte "server" rode na sua empresa, e os clientes a acessem via internet. Daí você tem mais controle de quem está chamando e etc. Fica bem mais difícil para um hacker passar por cima disso.
-
Cara a maneira mais simples e elegante de vc fazer isto é!!!
1 - Fazer um webservice que receba que tenha um registro do seu software, passando todos os dados da empresa e et, no qual até vc ativa.. isto.. e ele tb começa a ter atualizações via ClicOnce por exemplo.
2 - Depois de ter feito o WebService, vc tem que criar uma regra, no seu programa no para verificar toda vez que inicia o programa ele verificar no webservice, atraves de um numero.. exemplo GUID ou otruo qualquer que seja unico, para ver se o programa já foi feito o registro..
Caso ainda não, vc avisa que em X dias o programa irá perder sua validade.. entende?
Nos fazemos assim e ficou muito bom..!!!
Alem disso vc tem que se preocupar com seu fonte que está na maquina do cliente,, já que é windows forms.. ou seja se foi feito em .Net ou outra linguagem o cara pode pegar as DLLs e simplesmente abrir com Reflector e ler suas DLLS e criar um novo software com base do seu..
Entao sugiro que vc olhe sobre o assunto OBFUSCATOR.
Espero ter ajudado.
-
Uma coisa tb que vc pode usar é HARDKEY...
VC pega as dlls coloca no seu Software dai ele fica tanto em tanto tempo.. lendo o hardkey(ele parece um USB) que tem de forma de "pinos" um chaveamento para verificar se o HARDKEY está conectado e se é HARDKEY dele.
è muito bom...
da uma olhada no www.SafeNet-inc.com
Eles que dao esta solucao...
-
-
Se vc usar Obfuscator ninguem vai conseguir tirar nada e nem colocar nada em seu código, um bom Obfuscator, ou seja que a propria palavra ja fala.. é ofuscador... bom é Spice.Net
O Hardkey não é para proteger contra copia de código mas sim contra pirataria.
Abraços.
-
-
Olá,
Uma estratégia interessante é adotar um processo baseado na ativação do seu software através de um arquitetura baseada em chaves assimétricas (público/privada). Dentro do seu programa vc insere uma rotina onde durante a instalação o usuário deve informar alguns dados. Estes dados são transmitidos para um webservice localizado no fornecedor do software, que valida a informação e fornece uma chave de ativação.
Na prática, vc irá incluir uma função no "setup" do seu software para que ele utilize uma chave pública em cada instalação, comunicando-se com a chave privada única localizada no fornecedor através de um webservice. Embora vc tenha um overhead administrativo, o controle sobre cada instalação é bastante eficiente.
É claro que, a chave privada deve ser armazenada e manuseada com a segurança adequada.
No Visual Studio 2005 vc pode utilizar a classe RSACrytpoServiceProvider
[]'s !
Weber Ress
-
Fscsantos,
Algum tempo atrás tive a mesma dúvida e necessidade, porém encotrei um site muito interesante sobre o assunto.
Eu tinha algumas idéias para proteger o meu software e pensei que elas eram inéditas (q inocencia minha! hehe)... Este site me deu umas dicas legais.
http://www.woodmann.com/fravia/protec.htm
Reflita sobre elas.
Abraços -
-
-
-
Tchê, pode me dar uma ajuda
Como faço para pegar o GUID? Qual Win32 dessa string?
Valeu..
Segue como dica uma lista dos Hardwares Information:
http://www.codeproject.com/KB/system/GetHardwareInformation.aspx