Hi Michael:
Obviously you and I have different opinions on how to secure a product. I shall endeavor to add the security that I feel is necessary and sufficient.
As for canned products, most, if not all, have been compromised. The hackers love breaking the canned security methods. May I suggest reading
Crackproof Your Software by Pavol Cerven? He discusses many canned security products and invariably mentions that each has been broken.
There was a lengthy discussion of one class of anti-piracy protection in thread thread222-538092.
As for the "lock", relying on the fact that VB6 compiles to machine code is a fool's way of securing a program. Hackers have methods and software tools (e.g. SoftICE) that allow them to quickly pick out the parts of the code that stop the piracy and allow them to patch that code. Hence, they take pride in building protection-breaking software for each program.
Using inline assembler code permits the software developer to add
embedded, custom anti-hacking code to thwart the hacker. If that code varies from product version to product version then the developer can force the hacker to either give up on the product or spend considerable amount of time producing a protection-breaking program that must be custom tailored to each version of the program. What hacker will waste the time to break a program when the next version of the program has a modified protection, especially when the software is sufficiently low-priced as not to warrant the hacker's time?
You are right on the need for the huge payoff to the hacker. However, that is only part of the problem. By using custom in-house protection, will the developer convince the hacker that the hacker's time would be better spent on someone else's program?
One last thing, VB is poorly optimized. For example,
Code:
lngLongNumber = lngLongNumber / 2
take 75 machine cycles. The equivalent in inline assembler code takes two machine cycles. VB optimized? Don't believe so!
Cassie
The Adventuress
P.S.: Since the mid-1970s I have done assembler coding on a wide range of processors, all the way from the 6800 to Control Data's Cyber 170 series of scientific mainframes. Assembler is no stranger to me.