Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations wOOdy-Soft on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Crypto & Copy Protection Routines

Status
Not open for further replies.

Pontelo

Programmer
Dec 18, 2001
80
BR
Some of you use any kind of Copy Protection ?
Do you have some crypto & decrypto routines ?
Thank You !
 
on which item, a field or the whole file?, i have a few for each. i will try to look them up and i can send them to you
 
I mean protect the .EXE ie. I need to create a mechanism that only authorized users can run my software
 
Dear Bjolly64

Pls send me I want to encrypt/dcrypt my DBF file is it possible to do it
on fly I mean not to change DBF header detail but I want no one can see the data
outside my prog. even with Brwse/Dbedit etc.

Pls send me LIB/FUNCTION so I'll try.

Thanks
Hemant Pandya
xpert@vsnl.com

 



Bjolly64,
Excuse me my bad education. My e-mail : essystem@uol.com.br

Hemant Pandya,
Did you consider use Crypt() routine from CATOOLs ?
 
I have tried using the disk drive's volume serial number, embedding it into the code and checking it on startup to make sure the program is only running on the licensed drive. I suspect that Norton Ghost may allow a dishonest tech oriented person to get around that by Ghosting the drive as many times as they need. I think it duplicates the drive EXACTLY down to the volume serial number (thanks a pant-load Symantec!). Does anyone know the memory location for the Bios serial number so a Peek/Poke can be performed to verify it is being used on specific computers only...or does anyone have a better idea on what would be computer specific that could be easily Peeked/Poked?
 
You will have problems reading outside normal memory space when running on any NT based Windows version. The bios-serial can also be located in different locations, depending on the brand of bios/mainboard and version. Just try to grab a piece of memory from rom (see first remark :-( ) and generate a check-sum on that, or use some kind of dongle-based security. Professional dongles are very hard to break, are nearly lightning-resistant and user-proof (afaik).

HTH
TonHu
 
Hi!
We need to encrypt data files.
Is it possible to have a 128-bit encryption in Clipper?
Excuse me my inexperience in this field, but does 128-bit mean that an encryption key is 128 bits long?
NetLib 6.5(b-e) provides an encryption model based on a key
which is up to 8 characters long (64 bits). That is not enough any longer.
Please advise.
Thank you!
 
In order to control who has a "licenced copy" of your exe I like to use the HASP hardware Key (or "dongle") from Aladdin.

More of this in:


There are other's like Sentinel from Rainbow Tech, but I still prefer the one from Aladdin.

I actually use those "keys" with exe's created from CA-Clipper (16 bit DOS) and with the ones created with xBase++ (win32).

By the way, the Aladdin package comes with a utility called "Envelope" that actually encrypt the exe and decrypt it "on-the-fly" at runtime. This prevents de-compiling your exe and get back the source.

Hope it helps.
 
Hi, mxPavel!
Thank you for your response.
When I said that I was interested in encrypting Clipper data files I ment Clipper DBF files, not Clipper EXE(s).
I need 128-bit long cipher block encryptonizer that will encode DBF's data fields on the fly.
Do you have any information on this subject?

Thank you!
 
Any encrypt / decrypt can be broken if the person devotes enough time to it. However the average person may take a look at the DBF file and give up at that point. That being in mind, here is a simple routine to encrypt / decrypt each individual field in a DBF file on the fly:

*!*************************************************
*!
*! Function: X_ENCRYPT()
*!
*!*************************************************
FUNCTION x_encrypt(cstring)
LOCAL cnewstring, I
cnewstring := ''
FOR I := 1 TO LEN(cstring)
cnewstring += CHR(2*(I+ASC(SUBSTR(cstring, I, 1))))
NEXT
RETURN(cnewstring)
*!*************************************************
*!
*! Function: X_DECRYPT()
*!
*!*************************************************
FUNCTION x_decrypt(cstring)
LOCAL cnewstring, I
cnewstring := ''
FOR I := 1 TO LEN(cstring)
cnewstring += CHR(( ASC(SUBSTR(cstring, I, 1)) / 2 )-I)
NEXT
RETURN(cnewstring)

NOTE: This routine does not require a password.

This will at least discourage anyone from casual browseing your data. If anyone has additional or better routines to post, then please do.
Thanks
Steve
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top