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
OFF TOPIC - CRIPTOGRAFAR EXECUTÁVEL 32 BITS
Moderador: Moderadores
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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.
Troque as linhas para uso com o TAutoOLE
Para manuseio do Activex através de TActiveX:
Para manuseio do Activex através de TAutoOLE:
Para manuseio do Activex através de CreateOleObject:
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 :?)
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
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" )
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"
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()
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.
@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

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
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
{}
Antonio Carlos
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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 :?)
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.
@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

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
