Patent · US Active

System and method for branch function based obfuscation

US8751823B2 · kind B2 · utility

68Cited by
1References
25Claims
0Family size

Assignee

Inventors

Key dates

Filing dateAug 1, 2011
Grant dateJun 10, 2014
Priority date
Expiry dateJun 26, 2032

Classification

  • Technology area (CPC G)Physics
  • CPC primaryG06F2221/033
  • WIPO fieldComputer technology
  • WIPO sectorElectrical engineering

Abstract

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for obfuscating branches in computer code. A compiler or a post-compilation tool can obfuscate branches by receiving source code, and compiling the source code to yield computer-executable code. The compiler identifies branches in the computer-executable code, and determines a return address and a destination value for each branch. Then, based on the return address and the destination value for each branch, the compiler constructs a binary tree with nodes and leaf nodes, each node storing a balanced value, and each leaf node storing a destination value. The non-leaf nodes are arranged such that searching the binary tree by return address leads to a corresponding destination value. Then the compiler inserts the binary tree in the computer-executable code and replaces each branch with instructions in the computer-executable code for performing a branching operation based on the binary tree.

Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.