please look into your exe file:

This is what I mean.
Best regards
Otto



lDemo:=.f.
oLicense:=Tlicense():New(Lic.ini")
oLicense:Readlicense()
If !olicense:lNoFileLicenseFile
If oLicense:lValidLicenseFile
// date or days expiration limit
If oLicense:LicenseFileExpiredOn
cSay:=oLicense:DateExpiredOn
endif
// runcount limit
....
//one year free license
.....
//no expiration - free mode
.....
endif
endifOtto,
I sent U a test.exe with User.lic file
see if you can see the data info on exe or on User.lic
When I made the first version of the program for the beaches I had problems because my program liked and was copied in several bathing establishments,
so I had to protect myself by checking the hard drive, the motherboard, the Bios this for each license.
Naturally, like you, I thought of inserting passwords in the application, but as you know, it's wrong.
With my system I could give for example 12 licenses per year, one for each month, the check if the license is in time is not done on the system date but that taken on the Internet. With my system it is difficult but very difficult to crack the application.
Who wants to crack my applications should know the hexadecimal key to unprotect the strings created with aes, know the reference number that is different for each computer and I'm not talking about nHserial, and then know the algorithm with which the exe checks every string, I know there are around people able to do this but it's really difficult ....
FUNCTION TXT_ENCRYPT_CHR(f_cTxtEncrypt, f_cFileNameTxtSalva, f_lQuebraLinha)
LOCAL cEncry := ""
LOCAL nFor := 0, cCode := "", nQuebraLinha := 0
Default f_lQuebraLinha := .F.
cEnCry := ENCRYPT(f_cTxtEncrypt,"#Pwh@!")
If !f_lQuebraLinha
FOR nFor := 1 TO LEN(cEncry)
cCode += alltrim(str(ASC(SUBSTR(cEncry,nFor,1)))) + ","
NEXT
cCode := Substr(cCode,1,Len(cCode)-1)
Else
FOR nFor := 1 TO LEN(cEncry)
If nQuebraLinha == 0
cCode += "cVariavel += |"
EndIf
nQuebraLinha ++
cCode += alltrim(str(ASC(SUBSTR(cEncry,nFor,1)))) + ","
If nQuebraLinha > 29
cCode += "|"+CRLF
nQuebraLinha := 0
EndIf
NEXT
cCode := Substr(cCode,1,Len(cCode)-1)
cCode += "|"+CRLF
cCode := StrTran(cCode,"|",Chr(34))
EndIf
If !Hb_isNil(f_cFileNameTxtSalva)
Hb_MEMOWRIT(f_cFileNameTxtSalva,cCode)
EndIf
RETURN AllTrim(cCode)
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
FUNCTION TXT_DECRYPT_CHR(f_cTxtEncrypt)
LOCAL cEncry := "", aChrs := {}
LOCAL nFor := 0, cCode := ""
aChrs := Hb_aTokens(f_cTxtEncrypt,",")
FOR nFor := 1 TO LEN(aChrs)
cCode += Chr(Val(aChrs[nFor]))
NEXT
cCode := Alltrim(Decrypt(cCode,"#Pwh@!"))
RETURN cCodeYou can change to stay exclusively from your program
Example: ".% B>?" or "67! 9)"
No
Perhaps I not explain good
Otto Problem is
Otto need to inser two data info to make an update of a application
Otto must insert on exe the user and the password to access to the web site to update the new version of application
Otto saw if compile a test with Password into, ( also make a encrypt) he can see with a Peditor the password he inserted
Also eachone purchase his application can see this password , Otto are searching a method to hide this password
I sad to Otto to hide the data info into a extern file and not on exe file
Hola.
Podrian poner la solucion final de CRISTOBAL?
me interesó
Gracias.
Gustavo
gracias
veo que utilizan un programa para ver el contenido de un .exe
podrian decirme cual es?
gracias.
Gustavo,
imagino que cualquier editor hexadecimal te servirá.
Saludos,