none
(VB.NET) APLICAÇÃO COM SERIAL RRS feed

  • Pergunta

  • Olá

    Tenho uma aplicação, que gostaria de fazer o seguinte processo:

    Ao iniciar a aplicação, faria uma verificação num certo registro, onde verificaria se estava licenciado o sistema.

    Senão

    Abriria um form, informando o serial do HD num textbox e solicitando um código de ativação.

    A pessoa me informaria o serial do HD, e eu informaria o código de ativação.

    Pórém, até o momento, eu só consegui buscar o serial do HD, com o seguinte código:

    Imports System.Management
    
    Public Class Form1
    
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim objQuery As New ObjectQuery("SELECT * FROM Win32_LogicalDisk WHERE Name = 'C:'")
            Dim mos As New ManagementObjectSearcher(objQuery)
            For Each mo As ManagementObject In mos.Get()
                txtcodativacao.Text = mo("VolumeSerialNumber").ToString()
            Next
        End Sub
    End Class

    Minhas necessidades são as seguintes:

    A verificação do Registro ao Iniciar a a Aplicação.

    Um gerador de contra senha para o serial do HD;

    Um código para validação da contra senha

    e Um código para atualizar/criar o registro ao informar o código de ativação.

    Obrigado

    terça-feira, 6 de março de 2012 19:03

Respostas

  • Eu fiz da seguinte forma,

    Criei um banco na locaweb, onde ao iniciar a aplicação, ele verifica se o serial do HD está cadastrado, se não estiver ele não permite executar a aplicação e mostra na tela o numero do serial, para que o cliente nos informe.

    sexta-feira, 9 de março de 2012 16:28

Todas as Respostas

  • Olá Felipe Pires de Jesus, boa tarde.

    Gostaria de sugerir para não utilizar o numero serial da HD ou outro numero que se refira a alguma parte "removível" do computador, é muito relativo. Sugiro que seja algo mais profundo. Como por exemplo o GUID do próprio sistema.

    1º Toda vez que o usuário ativar o sistema, o número gerado seria guardado em um arquivo, .dll se preferir, e salvo em alguma pasta do WINDOWS, com um nome diferente. Assim toda vez que o programa iniciasse, ele buscaria por esse arquivo, se não existir, quer dizer que o sistema não está ativado.

    2º Para criar o "keygen", você pode gerar uma HASH a partir de informações básicas do seu cliente, como: nome do cliente + data de inicio + data de vencimento = chave de liberação. Criando assim, dependendo da criptografia que usar, uma sequência de caracteres que libera o uso até a próxima data de vencimento.

    3º Pra criptografar você pode se utilizar de diversas formas, com níveis de segurança diferentes, como por exemplo:

    - apenas embaralhar as informações;
    - utilizar criptografias simétricas (que tem volta, DES & RC);
    - utilizar criptografias assimétricas (não tem volta, SHA1 & MD5);

    Então você gera a chave no seu keygen, e passa para o cliente, quando ele aplicar ela, dependendo da forma que você fez a parte que recebe a ativação, irá ativar.

    Qualquer coisa eu fiz um aqui. Bem simples, o segredo está em não revelar a lógica utilizada para criar a chave.

    Até.


    Luige C. Salvi (17) | 9224-9335 Web Designer Pleno Microsoft .NET Developer Pleno OPS® Comunicação e Comércio Eletrônico

    quarta-feira, 7 de março de 2012 20:20
  • Eu fiz da seguinte forma,

    Criei um banco na locaweb, onde ao iniciar a aplicação, ele verifica se o serial do HD está cadastrado, se não estiver ele não permite executar a aplicação e mostra na tela o numero do serial, para que o cliente nos informe.

    sexta-feira, 9 de março de 2012 16:28