none
Urgente - Proteger software RRS feed

  • 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?
    quarta-feira, 28 de junho de 2006 09:09

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

    quarta-feira, 7 de fevereiro de 2007 17:29

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.

    quarta-feira, 28 de junho de 2006 11:07
  • 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.

    terça-feira, 23 de janeiro de 2007 01:24
  • 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.

    sexta-feira, 26 de janeiro de 2007 13:34
  • 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...

     

    sexta-feira, 26 de janeiro de 2007 14:06
  • Sim, mas lembre que se seu código é .Net, mesmo usando hardkey ou qualquer outra coisa, nada impede que alguém desmonte seu código e tire aquilo que não queira dele.

     

     

    segunda-feira, 29 de janeiro de 2007 07:01
  • 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.

    segunda-feira, 29 de janeiro de 2007 17:26
  • Eu diria que fica bem mais difícil, mas eu não diria impossível...
    segunda-feira, 29 de janeiro de 2007 20:43
  • 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

    quarta-feira, 7 de fevereiro de 2007 17:29
  • 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
    domingo, 27 de janeiro de 2008 03:07
  • ola

    vc teria um exemplo sobre o assunto?

    sexta-feira, 21 de março de 2008 01:08
  • Olá,

    A recomendação é vc gerar um ID de instalação usando o MAC Address + clock timer + hash de alguns arquivos do sistema operacional + ID processador.

    []'s

    Weber Ress
    sábado, 10 de maio de 2008 03:18
  • aLGUN EXEMPLO DISSO EM c#
    terça-feira, 22 de setembro de 2009 12:02
  • 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

    sexta-feira, 17 de setembro de 2010 13:30