Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses
AssigneeRunsafe Security, Inc.
InventorErik Raymond LOTSPEICH
Life of this patent
Estimating the term…
Loading patent…
AssigneeRunsafe Security, Inc.
InventorErik Raymond LOTSPEICH
Estimating the term…
Systems and methods of modifying a program binary by injecting code into a function of a program binary that tokenizes the return address of the function. The tokenization of the return address improves the robustness of the program binary against cyberattacks. For example, an attacker's attempt to hijack program flow before a function return will fail since any return address modified by the adversary will be tokenized (e.g., using a binary operation such as an XOR) resulting in an unusable address that will cause the system to crash. One advantage of the improved CFI consumes less average overhead and does not require all of the complications of the conventional CFI systems. In some embodiments, the tokenization includes applying a binary operation on a randomly-generated token and the return address. The token can be generated at transform time, load time, or run time.
A method of modifying a program binary by injecting code into a function of a program binary for defending against cybersecurity attacks on a stack register included as part of a random access memory (RAM) configured for storing local variables of a function used by the program binary, the method comprising:
A non-transitory computer-readable storage medium having stored thereon instructions for modifying a program binary by injecting code into a function of a program binary for defending against cybersecurity attacks on a stack register included as part of a random access memory (RAM) configured for storing local variables of a function used by the program binary, wherein the instructions when executed by a processor of an electronic device cause the processor to:
An apparatus for hijacking program flow in a program binary for modifying a program binary by injecting code into a function of a program binary for defending against cybersecurity attacks comprising:
Dependencies are inferred from the claim text.