Página 1 de 1
OFF TOPIC - CRIPTOGRAFAR EXECUTÁVEL 32 BITS
Enviado: 05 Nov 2006 11:12
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
Enviado: 05 Nov 2006 13:52
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 :?)
Enviado: 05 Nov 2006 22:03
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
Enviado: 05 Nov 2006 22:44
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 :?)
Enviado: 05 Nov 2006 23:58
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.
Enviado: 06 Nov 2006 15:28
por carlos_dornelas
Rochinha e Wagner!
Obrigado pela atenção. Vou testar vossas dicas. Qualquer coisa grito novamente.
[]s
Antonio Carlos