Control flow flattening for code obfuscation where the next block calculation needs run-time information
AssigneeNXP B.V.
InventorsJan Hoogerbrugge, Phillippe Teuwen, Wil Michiels
Life of this patent
Estimating the term…
Loading patent…
AssigneeNXP B.V.
InventorsJan Hoogerbrugge, Phillippe Teuwen, Wil Michiels
Estimating the term…
A method of obscuring software code including a plurality of basic blocks wherein the basic blocks have an associated identifier (ID), including: determining, by a processor, for a first basic block first predecessor basic blocks, wherein first predecessor basic blocks jump to the first basic block and the first basic block jumps to a next basic block based upon a next basic block ID; producing, by the processor, a mask value based upon the IDs of first predecessor basic blocks, wherein the mask value identifies common bits of the IDs of the first predecessor basic blocks; and inserting, by the processor, an instruction in the first basic block to determine a next basic block ID based upon the mask value and an ID of one of the first predecessor basic blocks.
A method of obscuring software code including a plurality of basic blocks wherein the basic blocks have an associated identifier (ID), comprising:
A non-transitory machine-readable storage medium encoded with instructions of a basic block of software code for execution by a processor, the non-transitory machine-readable storage medium comprising:
A method of executing instructions of a basic block of software code for execution by a processor, comprising:
Dependencies are inferred from the claim text.