Ir para conteúdo
Fórum Script Brasil
  • 0

Ativar programa/periodo de teste


Matheus-vb6

Pergunta

Bom dia gente :D, gostaria de saber como criar um programa que registrasse a key no sistema, no caso, uma de teste por X tempo... e ficasse solicitando ao usuario a ativação, q no caso, após a compra, eu enviaria uma key de ativação...

Abraços :D

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

você tem q mexer com o registro do windows, de uma olhada: http://scriptbrasil.com.br/forum/index.php?showtopic=78055

mas eu não sou muito bom com essa parte, não sei muito bem como deixar o sistema bem protegido. alias, aquele velho truque de mudar a data do sistema pra burlar o periodo de teste já derrubaria toda a sua protecao, eu realmente não sei como fazer esse tipo de trava de um jeito consistente.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tava pensando em fazer um esqueminha meio doido... tipo assim, o programa ficaria alertando que não ta ativado.... e um código de ativação seria gerado tipo no banco de dados... ai como no adobe, quando ele clicar em "Ativar agora" avisaria q o fornecedor entraria em contato nanana... usando o py.sendmail, o código "gerado" no banco de dados, seria enviado no meu e-mail... e quando o usuário digitasse o código, ele "supostamente" criaria um arquivo oculto e somente leitura, no caso que já existisse, por exemplo um txt, onde se tivesse escrito qualquer outra coisa diferente do código criptografado, por exemplo, se o código é 1234-5678-9012 para ativar, ali ele mostraria 1592-6037-1482 +- assim... mas os problemas são...

-Não sei editar um txt (se tiver algum semelhante para recomendar tambem aceito) =p

-To perdido na sintaxe de random para gerar um código (pode conter letras também)

-Como criptografar(nem manjo)

Editar um txt já vi algo parecido aqui no fórum, vo da uma corrida atrás

Abraços :D

Link para o comentário
Compartilhar em outros sites

  • 0
-Não sei editar um txt (se tiver algum semelhante para recomendar tambem aceito) =p

você conhece os codigos de Open for Input/Output?? não te passo nenhum link agora porque aqui a maioria dos sites são bloqueados.

tb da pra fazer com fso.

-To perdido na sintaxe de random para gerar um código (pode conter letras também)

geralmente as chaves dos programas profissionais, seguem uma especie de algoritmo. dizendo de uma forma simples, eles fazem uma especie de conta pra gerar a chave. a validacao seria o reverso dessa conta. a conta deve considerar o codigo ascii dos caracteres, sendo q (muito importante) a ordem deles importa. se a conta bater com o resultado q eles esperam, significa q validou.

pelo menos imagino q seja mais ou menos assim.

mas não peca detalhes ou exemplos sobre o algortimo q não tenho a menor ideia.

agora, se no seu caso você vai fazer a validacao pela internet, e pra cada .exe do programa só vai funcionar um unico key ai não teria necessidade de seguir a ideia de cima, você pode fazer uma chave random qualquer.

pra monta-la, você pode gerar cada caractere randomicamente. o esquema, seria gerar um numero de 65 a 90 (A-Z maiusculos na tabela ascii) ou de 0-9. sei la, você podia fazer um numero random de 0 a 35. se o numero for menor q 10, você transforma no caractere numerico correspondente. se for maior q 10, você soma 55 e usa a funcao Chr() pra transforma-la no caractere correspondente na tabela ascii. e vai concatenando na string.

-Como criptografar(nem manjo)

veja uma funcao de exemplo: http://scriptbrasil.com.br/forum/index.php...st&p=620753

bom, mas eu sei q peguei essa funcao pronta por ai em algum lugar, não lembro exatamente de onde, mas caso ela seja bem conhecida, sua chave pode ser facilmente quebrada.

de qualquer forma, só pra comentar aqui, uma das formas mais basicas de criptografias reversiveis (q tb é o metodo q essa funcao faz) é simplesmente mudar o valor de cada um dos bytes por outro q você recuperar depois.

um jeito bem besta e simples, seria simplesmente inverter os bytes (fazer 255 - o valor ascii dele). nesse caso, você usaria a funcao Asc() e gravaria num array de bytes e gravar num txt aberto como binario.

acho tb q costumam usar o operador Xor pra essas coisas.

você poderia criar uma chave de encriptacao q usasse um operando diferente a cada caracter (exemplo, no primeiro caractere, faria Xor com 120, no segundo faria com 99, e assim por diante), assim ficaria muito mais dificil descobrir.

de qualquer modo, acho q aquela funcao deve servir pra vc, mas se quiser eu posso tentar mais sobre essas ideias sobre criptografia, apesar de q não sei mta coisa e acho q vo acabar falando mta bestera.

Link para o comentário
Compartilhar em outros sites

  • 0

não conheço esse input e output e nunca usei esse fto... vou correr atras....

Qnt criptografar, acho que com a função "MID" eu conseguiria verificar, e para gerar um código eu poderia fazer tipo...uma variavel... ela vazia, ai um Random com do while ou for, até completar 12 caracteres por exemplo.. e registrar no banco de dados, a cada caracter gerador ele concatenaria +- codigo = codigo & gerador

Vou também atras de gerar codigo

Abraços :D

tentando ake =p

Link para o comentário
Compartilhar em outros sites

  • 0

Private Sub Form_Load()
abrebanco

Set rsdados = New ADODB.Recordset
rsdados.Open "select * from ativacao", cn

arq = App.Path & "\ativacao.key"
         
        n = FreeFile()
        Open arq For Input As #n
        conteudo = Input(LOF(n), n)
        Close #n
         
        linhas = Split(conteudo, vbCrLf)
        últimos10caracteres = Right(penúltima, 10)
        Dim errado As Boolean
        errado = False
        If Mid(conteudo, 1, 1) = Mid(rsdados("Key"), 1, 1) Then errado = True
        If Mid(conteudo, 2, 1) = Mid(rsdados("Key"), 2, 1) Then errado = True
        If Mid(conteudo, 3, 1) = Mid(rsdados("Key"), 3, 1) Then errado = True
        If Mid(conteudo, 4, 1) = Mid(rsdados("Key"), 4, 1) Then errado = True
        If Mid(conteudo, 5, 1) = Mid(rsdados("Key"), 5, 1) Then errado = True
        If Mid(conteudo, 6, 1) = Mid(rsdados("Key"), 6, 1) Then errado = True
        If Mid(conteudo, 7, 1) = Mid(rsdados("Key"), 7, 1) Then errado = True
        If Mid(conteudo, 8, 1) = Mid(rsdados("Key"), 8, 1) Then errado = True
        If Mid(conteudo, 9, 1) = Mid(rsdados("Key"), 9, 1) Then errado = True
        If Mid(conteudo, 10, 1) = Mid(rsdados("Key"), 10, 1) Then errado = True
        If Mid(conteudo, 11, 1) = Mid(rsdados("Key"), 11, 1) Then errado = True
        If Mid(conteudo, 12, 1) = Mid(rsdados("Key"), 12, 1) Then errado = True
        If errado = True Then
        frmAtivado.Show
        Unload Me
        ElseIf errado = False Then
        End If

Consegui fazendo dessa forma... bem semelhante ao link que você postou... agora o meu problema volta ao random...

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Matheus !

Bem, tentei entender teu esquema, mas me perdí :D depois com mais calma vou ler passo a passo todo ele...

agora, se é para ocultar o arquivo, você faz assim:

SetAttr App.Path & "\Teste.txt", vbHidden
e para mostrar novamente:
SetAttr App.Path & "\Teste.txt", vbNormal

Beleza ?!

Valeu cara ! ;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...