| CPC G06F 9/3867 (2013.01) [G06F 16/9014 (2019.01)] | 20 Claims |

|
1. A method performed by a computing device, the method comprising:
executing function instructions to arrive at a target executed-instruction state, the function instructions:
comprising a plurality of basic blocks of the function instructions;
having at least two execution paths between a first basic block and a second basic block of the plurality of basic blocks, and
the target executed-instruction state being within the second basic block;
executing hash instructions within the plurality of basic blocks to arrive at a hash value at the target executed-instruction state, the hash instructions including respective hash-input instructions within each of the plurality of basic blocks other than the second basic block;
determining an expected hash-value at the target executed-instruction state based on an initial hash-value and a hash function, the determining of the expected hash-value at the target executed-instruction state resulting in a same hash-value regardless of which of the at least two execution paths are executed between the first basic block and the second basic block;
comparing the hash value at the target executed-instruction state to the expected hash-value at the target executed-instruction state; and
responsive to the hash value at the target executed-instruction state not matching the expected hash-value of the executed-instruction state, performing a security function.
|