Login
`
Templates, Tools and Utilities
|
||
Add a comment to an Icetips ArticlePlease add your comments to this article.
Please note that you must provide both a name and a valid email address in order
for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!
Back to article list Search Articles Add Comment Printer friendly Direct link Windows API: CRC32 builtin Clarion function 2006-11-13 -- John E Singer >> Calculate CRCs of your EXE and DLL files. Store those in encrypted tps
>> files that ship with the program. At program, recalculate the CRCs and
>> verify them against the tps-stored values and report something like
>> "program corrupted" if they don't match. Then repeat the check
>> periodically/at random from various places throughout your program.
>
> I like that method, it is unobtrusive and if implemented corrected
> could be hard to detect. Do you have any Clarion code you can share
> for calculating the CRC?
MODULE('BUILTIN_32BITS')
CRC32(*String Buffer, ULong Bytes, ULong crc), ULong, Raw,
Name('CLA$CRC32')
END
ValiditityCheck PROCEDURE (*CString NameToCheck, ULong keyCRC)
LOC:CRC ULong, AUTO
LOC:Str String(61),AUTO
returnValue BYTE, AUTO
CODE
LOC:Str = clip(NameToCheck)
LOC:CRC = CRC32(LOC:Str, len(LEN:Str), 0)
returnValue = Choose(LOC:CRC = keyCRC, TRUE, FALSE)
RETURN returnValue
This is exactly the method I use. At install time, the name of the
company is stored in a read-only field and then used to calcuate a CRC
and that value is stored in an encrypted TPS file. On startup, it passes
the name of the company, does a CRC on it and compares it to the CRC
that is stored. If they are different, then the name of the company has
been altered and the program halts with a message. I'm sure there are
more complicated and more secure ways of doing this, but for 99.999% of
my customers, this more than adequate.
Today is November 21, 2024, 7:20 am This article has been viewed 35230 times. Google search has resulted in 86 hits on this article since January 25, 2004.
|
|