You are on page 1of 5

Protegendo o seu trabalho da pirataria...

http://www.macoratti.net/locking.htm

Protegendo o seu trabalho da Pirataria...


A cpia ilegal de um programa um assunto delicado e polmico. Muitos justificam a pirataria alegando que os autores cobram muito caro pelas cpias legais ; outros alegam que no teriam condies de adquirir os programas que , segundo eles, custam os 'olhos da cara' ; h os que arrazoam que as empresas detentoras dos direitos de comercializao dos softwares j ganharam muito dinheiro com isso. E por ai vai... Vamos fazer o seguinte: imagine que voc demorou meses desenvolvendo um sistema para um determinado fim e que aps muito trabalho conseguiu colocar o seu produto no mercado. Voc no trabalhou de graa todo esse tempo e naturalmente vai cobrar um certo valor pelo seu software. Voc define o preo e comea a vender o seu produto. Como voc se sentiria se percebesse que o seu trabalho fosse copiado e distribudo ilegalmente ? Voc se sentiria estimulado a continuar o seu trabalho ? As respostas eu deixo a cargo da conscincia de cada um. Vamos agora ao que interessa. Responda as perguntas abaixo: Voc sabe como proteger o seu trabalho das cpias ilegais ? Sabe como fazer uma verso de avaliao que funcione por um determinado tempo ? Sabe como criar um cpia Demo do seu aplicativo ? Sabe como desabilitar partes do seu aplicativo ? Se a resposta foi no para todas elas , voc esta com sorte. Vamos mostrar como fazer esse trabalho...

Usando uma OCX para proteger o seu trabalho


Existem muitos produtos no mercado que podem ser usados para proteger sua aplicao. Vamos analisar e mostrar como usar um produto muito bem feito e que tem como seu principal atrativo ser inteiramente grtis. Isto mesmo, grtis . Estamos falando do produto ActiveLock ( http://www.insite.com.br/activelock ). Existem duas verses disponveis: uma para Visual Basic 5.0 e outra para Visual Basic 6.0. Faa o Download da ActiveLock 1.5 ( ou uma verso mais recente ) no site: http://www.insite.com.br/activelock Descompacte o arquivo Zip para um diretrio.(Ele contm arquivos de ajuda e arquivos de exemplo de utilizao) Mova o arquivo nslock15vb5.ocx para o diretrio : c:\windows\system Para registrar a OCX execute o seguinte comando em iniciar|executar : regsvr32 c:\windows\system\nslock15vb5.ocx , ou , execute o arquivo Install.bat Para usar a OCX no seu projeto Visual Basic carregue o componente atravs da opo Project | Components

1 de 5

16/6/2010 08:35

Protegendo o seu trabalho da pirataria...

http://www.macoratti.net/locking.htm

Selecionando o Componente ActiveLock 1.5

O componente disponvel na barra de ferramentas

Agora para fazer uso do componente basta inser-lo no seu formulrio...

Criando um verso que funciona por um certo tempo (TrialWare)


Um Trialware um verso completamente funcional de um sistema que deixa de funcionar depois de um certo perodo de tempo. Vamos mostrar como voc pode implementar esta funcionalidade em seus sistemas usando a ActiveLock. Para isso vamos trabalhar com o projeto que vem junto com o arquivo OCX, o projeto : trialware.vbp. Carregue no Visual Basic o projeto trialware.vbp. Ele composto pelos seguintes arquivos: Calc.frm - uma calculadora frmRegister.frm - o formulrio de registro module1.bas - arquivo .bas que verifica o registro e o tempo de utilizao.

Quando voc inicia o projeto , um formulrio de registro aparece solicitando que voc informe a chave para liberao do sistema. O formulrio em tempo de projeto mostrado a seguir:

A seguir a tela inicial ao rodar o projeto:

2 de 5

16/6/2010 08:35

Protegendo o seu trabalho da pirataria...

http://www.macoratti.net/locking.htm

A tela inicial do sistema

O perodo de avaliao terminou

Se o usurio estiver dentro do perodo de avaliao definido o sistema ir rodar normalmente. Se o perodo de avaliao expirou o sistema emite uma mensagem avisando ao usurio e encerra o aplicativo. Quer saber qual a mgica ? Bem , a coisa mais simples do que imagina. Vamos analisar o cdigo do mdulo .bas do projeto , e-lo a seguir : Option Explicit ' This sample project requires ActiveLock control ' You may download ActiveLock free of charge at ' http://www.insite.com.br/~nferraz/activelock Sub Main() Load frmRegister Load Calculator With frmRegister.ActiveLock1 ' Se o usurio registrado exibe o formulrio principal If .RegisteredUser Then Calculator.Show Else ' Se o usurio no esta registrado, verifica ' se ele alterou a data do sistema If .LastRunDate > Now Then MsgBox "ActiveLock detectou que voc alterou a data do sistema !..." End End If ' Verifica o perodo de avaliao If .UsedDays < 30 Then frmRegister.Show 1 Calculator.Show Else 'Se perodo expirou avisa o usurio e sai MsgBox "Seu periodo de avaliao terminou , Registre-se...!" Unload frmRegister Unload Calculator End If End If End With End Sub A primeira coisa que o cdigo verifica se o usurio um usurio registrado, isto feito atravs da

3 de 5

16/6/2010 08:35

Protegendo o seu trabalho da pirataria...

http://www.macoratti.net/locking.htm

propriedade -

RegisteredUser.

Esta propriedade retorna um valor Boleano (Sim/No) indicando se o software foi registrado ou no. Um usurio estar efetivamente registrado quando informar uma Chave de Liberao LiberationKey - vlida. A chave de liberao depende do cdigo do Sofware - SoftwareCode - e da Senha - Password ; e fornecida por voc ao usurio que deseja se registrar. Quando o usurio instala o seu aplicativo a ele atribudo um SoftwareCode nico que o identifica. Mesmo aps o sistema ser desinstalado o cdigo do Software permanece no sistema . Voc exibe o cdigo de identificao do usurio da seguinte forma: Label1.Caption = "O seu SoftwareCode : " & ActiveLock1.SoftwareCode

Voc define uma senha para cada aplicativo que desenvolver via cdigo da seguinte maneira: ActiveLock1.Password = "ALEPH" Obs: Parece que uma nova verso do ActiveLock no utiliza mais a propriedade Password. A identificao do aplicativo agora feita pela propriedade SoftwareName. Para gerar a Chave de liberao - LiberationKey - para o usurio , portanto , voc vai precisar da Password e do SoftwareCode. As chaves de liberao so geradas pelo KeyGenerator - um programa que distribudo junto com o ActiveLock e que tambm gratis. Para verificar o perodo de avaliao usamos a propriedade - UseDays: Ela retorna um valor do tipo longo que indica o nmero de dias que o sistema foi utilizado. Voc utiliza a propriedade da seguinte forma: If (ActiveLock1.UsedDays > 21) Then MsgBox "Your evaluation period has expired! Please register!" End If Observe que o perodo definido em : ActiveLock1.UsedDays > 21 . Basta informar o valor desejado para o perodo de avaliao em dias. Voc deve usar esta propriedade junto com a propriedade RegisteredUser - que verifica se o usurio esta registrado para no If Not (ActiveLock1.RegisteredUser) And ActiveLock1.UsedDays > 21 Then MsgBox "Seu periodo de avaliao terminou...!" End If E se algum espertinho alterar a data do sistema ? A propriedade LastRunDate ir cuidar dele... Esta propriedade retorna uma valor do tipo data que indica a data que o programa foi usado pela ltima vez. Ela deve ser usada em conjunto com a propriedade UseDays para evitar que os espertinhos alterem a data do sistema e estendam o perodo de avaliao. If (ActiveLock1.LastRunDate > Now) Then MsgBox "Por favor corrija a data do sistema para continuar..." End End If

Criando um verso Demo do seu aplicativo


Voc pode tambm criar um verso demo do seu programa fazendo com que ele rode um determinado nmero de vezes e depois seja desabilitado. Para fazer isto basta usar a propriedade : Counter. Ela retorna um valor do tipo Longo indicando o nmero de vezes que a propriedade foi chamada.

4 de 5

16/6/2010 08:35

Protegendo o seu trabalho da pirataria...

http://www.macoratti.net/locking.htm

Assim se voc quiser que o seu sistema rode somente dez vezes na mquina do cliente use o cdigo a seguir: If (ActiveLock1.Counter > 10) Then MsgBox "Voc j executou a verso Demo 10 vezes , registre-se..." End End If Faltou falar da propriedade

: SoftwareName

Ela atribui um nome nico para cada programa que voc desenvolver. Tenha a certeza de atribuir um nome nico e diferente para cada sistema para criar verses diferentes.

Desabilitando partes do seu sistema (Crippleware)


Para desabilitar partes do seu sistema utilize a propriedade RegisteredUser. Se o usurio no for registrado simplesmente desabilite o cdigo do sistema. Para habilitar/Desabilitar um boto de comando (cmdIncluir) o cdigo seria o seguinte: If .RegisteredUser Then cmdIncluir.enabled= True else cmdIncluir.enabled = False endif Um detalhe final: Como o ActiveLock utiliza o nmero de srie do Windows e outras propriedades do sistema para gerar a Chave de Liberao, se o Windows for reinstalado , o SoftwareCode ir ser alterado, e o usurio vai precisar registrar o aplicativo novamente. Se voc desejar outra cpia da mesma aplicao que tenha um comportamento diferente , deve mudar a propriedade SoftwareName. Bem , creio que as informaes acima so suficientes para voc usar o ActiveLock para proteger o seu cdigo. A seguir veremos como gerar via cdigo um rotina no VB para proteger seu sistema...

5 de 5

16/6/2010 08:35

You might also like