A method and apparatus are described for protecting critical computer software
and/or data with a large amount of obscuring instructions and or data to the extent
that observing and understanding the obscured instructions and/or data is not humanly
feasible. In a preferred method of obscuring software, a bank of obscuring instructions
is prepared, a large number of obscuring instructions are selected from the bank
and injected in the software code to be protected and a static image of the obscured
sequence of code is encrypted and/or compressed. At execution, the obscured instructions
are executed one at a time to make run time tracing a labor intensive process.