When software is initially loaded to RAM 20, an engine 30A is installed at
the beginning of an otherwise empty area of RAM 20. When the protected
application is called, the engine first creates a series of steps (FIG.
3D), including a CALL command to a protection block 38. On reaching the
call 36, the protection block 38 is executed, to complete various
security checks. If these are successful, step 2 is created and written
over the call 36 so that execution of steps 2 and 3 can continue as
normal. Consequently, the protected software (steps 1, 2 and 3) is not
exposed to scrutiny unless the security checks have successfully been
completed.