APPARATUS AND METHOD FOR EMBEDDED PROTECTION OF EXECUTABLE CODE
FIG1 shows a block diagram of a computing device according to illustrative embodiments of the present invention
Reference is made to FIG1 below, showing a non-limiting, high-level block diagram of a computing device or system 100 that may be used to protect and secure execution of code according to some embodiments of the present invention. Executable code 125 may be executed by controller 105 possibly under control of an operating system. For example, executable code 125 may be an application that protects and secures execution of code as further described herein. Although, for the sake of clarity, a single item of executable code 125 is shown in FIG1, a system according to some embodiments of the invention may include a plurality of executable code segments similar to executable code 125 that may be loaded into memory 120 and cause controller 105 to carry out methods described herein. In some embodiments, some of the components shown in FIG1 may be omitted. For example, memory 120 may be a non-volatile memory having the storage capacity of storage system 130. Accordingly, although shown as a separate component, storage system 130 may be embedded or included in system 100, e.g., in memory 120.
block diagram
130
storage system
1
Assembly code between phase
100
system
105
controller controllers
125
executable code
135
components
120
memory
['4. The method of claim 3, wherein the secret is one of: randomly chosen, chosen according to an attribute of a target system and created using a predefined function.', '10. Apparatus comprising: a memory (120); and a controller (105) configured to: obtain assembly code; patch the assembly code to produce patched code, the patched code including control-flow integrity (CFI) enforcement; and assemble the patched code into a binary output.']