Jason Dawes wrote:
> 
> At 10:15 AM 6/9/99 -0700, you wrote:
> >
> >I still don't see the point of this.  Presumably after you've done all
> >this magic, you make some decision: did the regcode check out ok or
> >not?  A cracker just needs to find this bit of logic and make it look
> >like the decision came out "ok".  Alternatively, he can find the place
> >where you start the regcode process and branch around the whole thing.
> >Or am I missing something?
> 
> Yes.  More sophisticated registration checking code uses algorithms the
> program itself depends on.  If the algorithms are changed, the program
> itself doesn't work correctly.  You simply check the result (non boolean)
> of an function with predetermined inputs.  This can make cracking the
> program much more difficult.

Sorry, I still don't get it.  Whatever code does the registration
checking can just be avoided by judiciously placed branch instructions. 
I suppose you can make it harder to find the right place to put the
branch that will avoid the reg code checking without affecting other
parts of the program, but I can't see how it can be made terribly
difficult in any case.  If you're calling a function that is a necessary
part of the program logic and checking the result, a cracker wouldn't
patch the function itself, but the one (or more) calls to that function
that affect only the reg code decision.
--Mark

Reply via email to