Netinfo Security ›› 2021, Vol. 21 ›› Issue (7): 17-26.doi: 10.3969/j.issn.1671-1122.2021.07.003

Previous Articles     Next Articles

A Code Obfuscation System against Symbolic Execution Attacks

WEN Weiping(), FANG Ying, YE He, CHEN Xiarun   

  1. School of Software and Microelectronics, Peking University, Beijing 100080, China
  • Received:2021-04-05 Online:2021-07-10 Published:2021-07-23
  • Contact: WEN Weiping E-mail:weipingwen@ss.pku.edu.cn

Abstract:

Symbolic execution technology has made great progress in the areas of assisting the discovery of software vulnerabilities and software de-obfuscation. As one of the most effective means to protect software security, the existing code obfuscation system can be hardly resilient against symbolic execution attacks. To solve the problem mentioned above, starting from the function extension of the obfuscation system and the weakness exploitation of the symbolic execution tool, this paper enriches the synonymous instruction replacement set and the identical truth predicate set, and designs opaque predicates to obfuscate the control flow and reinforce the branching conditions of the software, and proposes a code obfuscation system that is compatible with multiple programming languages, scalable, and can resist symbolic execution attacks. The experimental results show that this obfuscation system can induce symbolic execution tools to enter unreachable paths, or protect some right paths from being explored by symbolic execution tools without changing the original functions of the software, so that it can be resilient against the attacks of symbolic execution tools. Compared with traditional obfuscation systems, this system has obvious advantages in combating symbolic execution attacks.

Key words: code obfuscation, symbolic execution, opaque predicate, OLLVM

CLC Number: