Patent attributes
A software protection system comprises a memory system and a microprocessing system. The memory system is configured to store a software program comprised of a plurality of program instructions that, when executed, have a program order. The microprocessing system is coupled to the memory system and is configured to, when executing the software program, determine a next program instruction of the plurality of program instructions in the program order based on an order identifier, fetch the next program instruction from the memory system, determine if the next program instruction requires decrypting, decrypt the next program instruction responsive to determining that the next program instruction requires decrypting, and execute the next program instruction.