Branch Obfuscation Using "Black Boxes"
Nan Zong, Chunfu Jia · 2014
The path constraints are leaked by conditional jump instructions which are the binary form of software's internal logic. Based on the problem of above, reverse engineering using path-sensitive techniques such as symbolic execution and theorem proving poses a new threat to software intellectual property protection. In order to mitigate path information leaking problem, we propose a novel obfuscation technique called "black box" to combat the state-of-art reverse engineering techniques. By handling the branch conditions as knowledge embedded into black boxes, the black boxes can simulate the behaviors of the obfuscated branch logic, while the original branch condition is hidden. We show that based on the incomprehensibility of black boxes, revealing branch conditions hidden by our method is considerably harder due to the high computational cost. The results of the experiment further indicate that besides providing effective protection, our method is also a light-weight branch obfuscation scheme.