Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Claudio Neto

Criar um demo temporário

Recommended Posts

Claudio neto,Veja esse site: http://www.macoratti.net/indvb.htm lá você encontrará um exemplo desse programa como código fonte aberto.Um abraço.Alisson

Abriu o link da página inicial do Marcoratti, não foi para nenhum código. Já tinha tentando achar alguma coisa com demo lá.. mas não encontrei, sabe como está o título do que ia me passar para que eu possa procurar??Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo beleza ???Eu tambem vou ter que fazer um software similar ao que você esta falando ....Que fique alguns dias sem a necessidade de registrar ....E depois deste periodo apenas com uma senha / Contra-Senha para habilitar o programa ....Bom, eu criaria uma chave no RegEdit com contendo a data de instalação codificada em HEXADECIMAL, exemplo:a data fosse - 11/03/2007formataria para 20070311 e em seguida converto para hexadecimal , e gravo no regedit ....sempre que o aplicativo for aberto, verifico se a data atual é > que N dias a partir da data de instalação....Atualizo no RegEdit em uma outra chave, a data do ultimo acesso ....Caso a data do ultimo acesso seja inferior superior a data atual, significa que o usuário alterou a data do sistema, logo, o sistema vai bloquear o acesso ....Ao entrar com a chave de registro, a logica interna do sistema deixaria de realizar esta validação ...Sendo também a chave de registro gravada em uma chave do RegEdit ....É um caminho ....Agora aprenda a gerar chave no RegEdit, consultar a chave ...Criar uma rotina de criptografia de chave com contra-senha e pronto .....:)Um abraço ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,No artigo - Protegendo o seu Aplicativo contra Pirataria - eu tratei do assunto e usei a OCX - nslock15vb5.ocx - para implementar a proteção no seu proograma Visual Basic. No final do artigo eu prometia que iria voltar ao assunto , disse o seguinte : "A seguir veremos como gerar via código um rotina no VB para proteger seu sistema" . Pois bem estou cumprindo a promessa e meu artigo vai mostrar como proteger seu programa VB usando código VB.O código que eu vou mostrar aqui é muito simples e tem como objetivo proteger o seu programa de usuários curiosos e mal intencionados , mas , atenção , isto não quer dizer que seu programa será inviolável ; se empresas como a Microsoft , IBM , Oracle , gastando milhões de dolares , não conseguem evitar a pirataria (aposto que na sua cidade tem um camelô ou alguem que vendem programas copyrights como Windows XP , VisualAge , Oracle 9i, a valores irrisórios.) não será este código que vai tornar o seu programa 'incopiável' .A idéiaComo posso proteger meu programa VB ? Que tal esta idéia : Para implementar a segurança na sua aplicação VB vamos trabalhar com :parâmetros na linha de comando. um código de identificação para o usuário. uma data indicativa para travamento do aplicativo. Voce deverá gerar um código de identificação universal único para o usuário.(GUI) Informar na data do travamento do aplicativo no seu código. Verificar se foi passado um parâmetro na linha de comando.Se nenhum parâmetro for passado para aplicação a mesma irá verificar se a data atual é superior ou igual a data indicada para travamento e em caso positivo irá invocar a rotina para travar o sistema. Se o parâmetro informado for a palavra "Ativar" o sistema ativa novamente a aplicação para uso normal. O código de identificação do usuário - GUI - será gravado no registro do Windows e será checado toda vez que aplicação for iniciada. Se o código for inválido a aplicação será encerrada. Parâmetros na linha de comando Como os parâmetros na linha de comando são passados para o Visual Basic ?Simples , basta digitar o nome do aplicativo VB executavel seguido pelo parâmetro que deseja informar.Ex: Ou informar no seu projeto um parâmetro na caixa de diálogo - Proteção - Project Properties em :Command Line ArgumentsToda vez que você executar o seu aplicativo EXE o parâmetro será passado para seu programa VB.Obs: Usamos esta forma somente para testar a aplicação com o parâmetro informado. E como os parâmetros passados na linha de comando são reconhecidos pelo programa VB que esta sendo executado ?Os argumentos da linha de comando quando passados para um arquivo executável Visual Basic são armazenados em um variável especial de Sistema e podem ser capturadas e retornadas para o programa através da função : Command.Então para verficarmos se algum argumento foi passado na linha de comando podemos usar uma instrução if no código verificando o valor da função Command : If Command = "" Then.Se nenhum parâmetro for passado o valor retornado será uma string vazia ("").Como gerar um identificador único do usuário ? ( Globally Unique Identifier )Eu já abordei este assunto no artigo : GUID - Gerando um identificador Único , portanto vou mostra apenas o código usado :1- Codigo das API´s declaradas no formulário.Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGUID As GUID) As LongPrivate Declare Function StringFromGUID2 Lib "OLE32.DLL" (pGUID As GUID, _ByVal PointerToString As Long, ByVal MaxLength As Long) As LongPrivate Type GUID Guid1 As Long Guid2 As Long Guid3 As Long Guid4(0 To 7) As ByteEnd Type 2- O código da função CreateGUID que irá gerar o código identificador.Public Function CreateGUID() As StringDim udtGUID As GUIDDim sGUID As StringDim lResult As LonglResult = CoCreateGuid(udtGUID)If lResult ThensGUID = ""ElsesGUID = String$(38, 0)StringFromGUID2 udtGUID, StrPtr(sGUID), 39End IfCreateGUID = sGUIDEnd Function 3- Para gerar o código invocamos a função assim : CreateGUID Usando a rotina eu gerei o código : 4BE96C57-F3BF-11D6-A57D-B2A419659821 usado no exemplo.Como gravar e recuperar informações do registro do Windows ?Os conceitos relacionados ao registro do windows estão no artigo : Acessando o registro do Windows O Visual Basic fornece um localização padrão no registro para armazenar informações sobre as aplicações criadas com o Visual Basic :HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\keyImplementando a segurança na sua aplicação VBVamos agora juntar todas as peças e partir para o nosso objetivo : implementar a segurança na aplicação VB.No programa VB para o qual você deseja implantar a segurança faça o seguinte : (eu vou estar usando um projeto com o nome de Proteção.vbp)- Insira um módulo no seu projeto : Menu Project | Add Module- No módulo inserido seção General Declarations insira o código abaixo:Option ExplicitConst GUI = "4BE96C57-F3BF-11D6-A57D-B2A419659821" a constante GUI refere-se ao código identificador único para o usuário que você deve gerar previamente.- Crie uma sub rotina Main() e insira o código conforme abaixo:Sub Main()If Command = "Ativar" Then AtivaAplicativo (GUI)Else DesativarEm "10/11/02" End IffrmProtecao.ShowEnd Sub - Usamos a função Command para verificar se algum argumento foi passado na linha de comando - Se o comando informado for a String "Ativar" chamamos a função AtivaAplicativo(GUI)- Se nenhum parâmetro for informado a função DesativarEm é invocada irá desativar a aplicação para a data indicada. - A rotina DesativarEm recebe a data na qual será desativada o sistema e verifica se a data atual é superior ou igual a data indicada. Public Sub DesativarEm(Data As Date)'Desativa o programa na data informadaDim chave As String'Gera a chave com base no codigo identificador do usuariochave = Left(GUI, 8)'Se a chave for invalida encerra a aplicaçãoIf GetSetting("Aplicativo", "Security", chave, GUI) <> GUI Then MsgBox "Não é possivel executar a aplicação entre em contado com o suporte técnico", vbCritical, _ "Erro de Validação de chave : A-1" EndEnd If'Se a data expirar, desativa o aplicativoIf Date >= Data Then 'grava um valor invalido na chave do registro SaveSetting "Aplicativo", "Security", chave, "A-1" MsgBox "O periodo de demonstração terminou ! " & vbCrLf & _ " Para adquirir o sistema entre em contato com seu revendedor", vbCritical, "Erro Interno" EndEnd IfEnd Sub - Finalmente a rotina AtivaAplicativo que recebe como argumento o valor do código do usuário - GUI - gerado anteriormente.Public Sub AtivaAplicativo(codigo As String)Dim chave As Stringchave = Left(codigo, 8)If Command = "Libera" Then SaveSetting "Aplicativo", "Security", chave, codigoEnd IfEnd Sub As informações são gravadas/recuperados do registro do Windows usando as funções SaveSetting e GetSetting.Como funciona ?Suponha que você distribuiu o seu aplicativo para um usuário testar , e, que definiu que o travamento da aplicação deverá ocorrer no dia 10/11/02. O usuário irá executar normalmente (fig 1) seu programa até a data informada , neste dia ,ao ser executado ,a rotina DesativarEm será invocada e irá gravar uma chave inválida no registro do Windows. A partir dai a aplicação não poderá ser mais executada (fig 2), mesmo que a data seja alterada ou que o programa seja instalado em outra máquina. fig 1 fig 2 Gostou ??? Simples mas funcional ... até o próximo artigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara muito show. ...Vou tentar implementar este código mais tarde ,Pois estou fazendo um sistema Freelance e realmente vou precisar disto ....Obrigado pela excelente ajuda !!!!Um abraço !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma idéia que eu acho interessante é, ao invés de expirar em 30 dias, limitar a quantidade de acesso (30 login's por exemplo) ... Aí, é até mais fácil de controlar ... Só criar um campo ativação na base e mandar salvar se um serial (definido por você ou encriptado) for setado em algum campo que você criar ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.