OFF TOPIC - CRIPTOGRAFAR EXECUTÁVEL 32 BITS

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

OFF TOPIC - CRIPTOGRAFAR EXECUTÁVEL 32 BITS

Mensagem por carlos_dornelas »

Olá pessoal, desculpe o OFF, mas pode ser que interesse também a outros colegas deste fórum. Estou precisando de um programa que criptografe executáveis, de preferência free, tipo o Cryexe para programas Clipper, só que para executáveis gerados pelo harbour. Alguém tem uma dica?

{}s

Antonio Carlos
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por 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.

Código: Selecionar todos

// 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:

Código: Selecionar todos

   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:

Código: Selecionar todos

   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:

Código: Selecionar todos

   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 :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Mensagem por carlos_dornelas »

Olá Rochinha, obrigado pela resposta. Se eu entendi certo o NSLOCK seria mais para proteção contra cópias ilegais ou controlar versão demo. O que eu quero mesmo é criptografar o EXE para evitar/dificultar por exemplo a edição direta do executável, pois, sem criptografia, muitas informações podem facilmente ser reconhecidas ao visualizar o EXE. Seria como o blinker compres ou como o Cryexe faz. Mesmo assim, achei interessante o NSLOCK e vou tentar estudá-lo melhor

{}

Antonio Carlos
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Em relação ao Harbour sua descompilação ainda pode ser impossivel, mas se voce quiser dificultar ainda mais as informações autorais em seus programas crie funções que apresentem os dados autorais mas grave as mensagens já embaralhadas e a sua funções de desembaralhamento apresenta as mesmas.

Exemplo voce terá uma string assim:

cDireitoAutoral := "98A7S8U@#YUI4#3UKHG2#$#@2@(*GLKK&"

Mas sua função faria isto:

@ 24,0 say DireitoAutoral( cDireitoAutoral )

Apresentando isto:

"*** SISTEMA DESENVOLVIDO POR MIM ***"

Veja também na sessão código fonte algo sobre "modulo de registro...", onde abordei este questão e coloquei um código que armazena informações dentro do próprio executável evitando arquivos externos e pode ser um bom ponto de partida para voce.

@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

O PECOMPACT é o melhor programa para isto, não achei na net nada relativo a reverção do processo de criptografia que ele faz.
Sem mais
Wagner Nunes
www.vagucs.com.br
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Mensagem por carlos_dornelas »

Rochinha e Wagner!

Obrigado pela atenção. Vou testar vossas dicas. Qualquer coisa grito novamente.

[]s

Antonio Carlos
Responder