Techniques used in coding software are described. An encoder encodes a
machine executable program or portions of a machine executable program.
The encoding process uses a cipher table, a unique key for encoding, and
an agreement between the encoder and decoder as to what portions of a
machine executable will be encoded. By using the decoder on a computer
system which may execute the encoded machine executable, the decoder may
serve as a recognizer to only execute those machine executable programs
which have been encoded and are recognized by the recognizer. If a machine
executable is not recognized or rejected, appropriate actions may be taken
other than the machine executable.