Criptografar executável a 32 bits com Activex

Post Reply
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Criptografar executável a 32 bits com Activex

Post by Rochinha »

Amiguinho

Estive recentemente fazendo alguns testes com OCX para integra-las ao meu sistema em Fivewin e consegui exito usando NSLOCK15.OCX.

Usei a versão 2.7 que possui uma classe tActivex que permite acesso direto a estas caracteristicas.

Não sei qual biblioteca voce usa com o Harbour mas poderia adaptar o codigo a seguir usando o TAutoOLE do Harbour anexando a sua linkagem a HBOLE.LIB.

Code: Select all

// FiveWin ActiveX support demo - Using Adobe Acrobat Reader

#include "FiveWin.ch"

function Main()

   local oWnd, oActiveX, cLiberationKey := space(16)

   DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

   oActiveX = TActiveX():New( oWnd, "nslock15vb5.ActiveLock" )

   oActiveX:Do( "Password"           , "minhasenha" )
   oActiveX:Do( "SoftwareName"       , "NomeDoSistema" )
   oActiveX:Do( "LiberationKeyLength", 16 )
   oActiveX:Do( "SoftwareCodeLength" , 16 )

   //? oActiveX:GetProp( "SoftwareCode" )

   if ! oActiveX:GetProp( "RegisteredUser" )
      MsgGet( "Entre a chave de liberacao",; // Title
              "Chave:",;                     // Label
              @cLiberationKey )              // A variable by reference
      oActiveX:Do( "LiberationKey", cLiberationKey )
   endif

   if ! oActiveX:GetProp( "RegisteredUser" )
      if oActiveX:GetProp( "LastRunDate" ) > date()
         ? 'Data foi retrocedida. Programa sera encerrado'
      else
         ? 'Faltam ' + Str( 30 - oActiveX:GetProp( "UsedDays" ) ) + ' dias.'
      endif
      ? 'DEMONSTRACAO'
      oWnd:cCaption := 'DEMONSTRACAO'
      SysRefresh()
   else
      ? 'REGISTRADO'
      oWnd:cCaption := 'REGISTRADO'
      SysRefresh()
   endif

   //oWnd:oClient = oActiveX // To fill the entire window surface

   ACTIVATE WINDOW oWnd 
return nil
Troque as linhas para uso com o TAutoOLE

Para manuseio do Activex através de TActiveX:

Code: Select all

   oActiveX = TActiveX():New( oWnd, "nslock15vb5.ActiveLock" )
   // Métodos
   oActiveX:Do( "Metodo"           , "string" )
   // Propriedades
   oActiveX:GetProp( "RegisteredUser" )
   oActiveX:SetProp( "Propriedade", 123 )
   oActiveX:SetProp( "Propriedade", "String" )
Para manuseio do Activex através de TAutoOLE:

Code: Select all

   oAutoOLE := TOleAuto():New( "nslock15vb5.ActiveLock" )

   // Propriedades
   oAutoOLE:Get( "propriedade" )
   oAutoOLE:Set( "propriedade"  , 123 )
   oAutoOLE:Set( "propriedade"  , "string" )

   // Métodos
   oActiveX:Do( "Metodo"           , "string" )

   // Termina objeto OLE
   oAutoOLE:End()

   ou

   cVariavel := oAutoOLE:propriedade // Usado para GET da propriedade
   oAutoOLE:propriedade := 123         // Usado para SET a propriedade
   oAutoOLE:propriedade := "string"
Para manuseio do Activex através de CreateOleObject:

Code: Select all

   hWordOle := CreateOleObject( "nslock15vb5.ActiveLock" )

   // Propriedades
   OleGetProperty( hWordOle, "propriedade" )
   OleSetProperty( hMainWnd, "propriedade", 123 )
   OleSetProperty( hMainWnd, "propriedade", "string" )

   // Métodos
   OleInvoke( hWordOle, "Metodo", "parametro" )
   OleInvoke( hWordOle, "Metodo" )

   // Termina objeto OLE
   OleUninitialize()
O que foi colocado aqui o que tirei de cabeça pode não estar tão correto mais basta dar uma pesquisada em exemplos de uso destes recursos e voce verá que é este o caminho.

A NSLOCK pode ser baixada de:

VB - Protegendo sua aplicação com o nslock em 7 etapas. José Carlos Marcoratti

@braços :?)
Post Reply