TY - GEN
T1 - Translingual obfuscation
AU - Wang, Pei
AU - Wang, Shuai
AU - Ming, Jiang
AU - Jiang, Yufei
AU - Wu, Dinghao
N1 - Publisher Copyright:
© 2016 IEEE.
PY - 2016/5/9
Y1 - 2016/5/9
N2 - Program obfuscation is an important software protection technique that prevents attackers from revealing the programming logic and design of the software. We introduce translingual obfuscation, a new software obfuscation scheme which makes programs obscure by "misusing" the unique features of certain programming languages. Translingual obfuscation translates part of a program from its original language to another language which has a different programming paradigm and execution model, thus increasing program complexity and impeding reverse engineering. In this paper, we investigate the feasibility and effectiveness of translingual obfuscation with Prolog, a logic programming language. We implement translingual obfuscation in a tool called BABEL, which can selectively translate C functions into Prolog predicates. By leveraging two important features of the Prolog language, i.e., unification and backtracking, BABEL obfuscates both the data layout and control flow of C programs, making them much more difficult to reverse engineer. Our experiments show that BABEL provides effective and stealthy software obfuscation, while the cost is only modest compared to one of the most popular commercial obfuscators on the market. With BABEL, we verified the feasibility of translingual obfuscation, which we consider to be a promising new direction for software obfuscation.
AB - Program obfuscation is an important software protection technique that prevents attackers from revealing the programming logic and design of the software. We introduce translingual obfuscation, a new software obfuscation scheme which makes programs obscure by "misusing" the unique features of certain programming languages. Translingual obfuscation translates part of a program from its original language to another language which has a different programming paradigm and execution model, thus increasing program complexity and impeding reverse engineering. In this paper, we investigate the feasibility and effectiveness of translingual obfuscation with Prolog, a logic programming language. We implement translingual obfuscation in a tool called BABEL, which can selectively translate C functions into Prolog predicates. By leveraging two important features of the Prolog language, i.e., unification and backtracking, BABEL obfuscates both the data layout and control flow of C programs, making them much more difficult to reverse engineer. Our experiments show that BABEL provides effective and stealthy software obfuscation, while the cost is only modest compared to one of the most popular commercial obfuscators on the market. With BABEL, we verified the feasibility of translingual obfuscation, which we consider to be a promising new direction for software obfuscation.
UR - https://www.scopus.com/pages/publications/84978137306
UR - https://www.scopus.com/pages/publications/84978137306#tab=citedBy
U2 - 10.1109/EuroSP.2016.21
DO - 10.1109/EuroSP.2016.21
M3 - Conference contribution
AN - SCOPUS:84978137306
T3 - Proceedings - 2016 IEEE European Symposium on Security and Privacy, EURO S and P 2016
SP - 128
EP - 144
BT - Proceedings - 2016 IEEE European Symposium on Security and Privacy, EURO S and P 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 1st IEEE European Symposium on Security and Privacy, EURO S and P 2016
Y2 - 21 March 2016 through 24 March 2016
ER -