Binary Protection Using Dynamic Fine-grained Code Hiding and Obfuscation
Title | Binary Protection Using Dynamic Fine-grained Code Hiding and Obfuscation |
Publication Type | Conference Paper |
Year of Publication | 2016 |
Authors | Wu, Meng, Zhang, Yi, Mi, Xianya |
Conference Name | Proceedings of the 4th International Conference on Information and Network Security |
Publisher | ACM |
Conference Location | New York, NY, USA |
ISBN Number | 978-1-4503-4796-9 |
Keywords | Binary Protection, obfuscation, pubcrawl, security, Self-modifying Code, software protection, virtual machine, virtual machine security |
Abstract | Anti-reverse engineering is one of the core technologies of software intellectual property protection, prevailing techniques of which are static and dynamic obfuscation. Static obfuscation can only prevent static analysis with code mutation done before execution by compressing, encrypting and obfuscating. Dynamic obfuscation can prevent both static and dynamic analysis, which changes code while being executed. Popular dynamic obfuscation techniques include self-modifying code and virtual machine protection. Despite the higher safety, dynamic obfuscation has its problems: 1) code appear in plain text remains a long time; 2) control flow is exposable; 3) time and space overheads are too big. This paper presents a binary protection scheme using dynamic fine-grained code hiding and obfuscation named dynFCHO. In this scheme, basic blocks to be protected are hidden in original code and will be restored while being executed. Code obfuscation is also implemented additionally to enhance safety. Experiments prove that dynFCHO can effectively resist static and dynamic analysis without destructing original software functions. It can be used on most binary programs compiled by standard compilers. This scheme can be widely used with the advantages of strong protection, light-weight implementation, and good extendibility. |
URL | http://doi.acm.org/10.1145/3026724.3026726 |
DOI | 10.1145/3026724.3026726 |
Citation Key | wu_binary_2016 |