Nakanishi, F;
De Pasquale, G;
Ferla, D;
Cavallaro, L;
(2020)
Intertwining ROP Gadgets and Opaque Predicates for Robust Obfuscation.
arXiv
Preview |
Text
2012.09163.pdf - Submitted Version Download (568kB) | Preview |
Abstract
Software obfuscation plays a crucial role in protecting intellectual property in software from reverse engineering attempts. While some obfuscation techniques originate from the obfuscation-reverse engineering arms race, others stem from different research areas, such as binary software exploitation. Return-oriented programming (ROP) gained popularity as one of the most effective exploitation techniques for memory error vulnerabilities. ROP interferes with our natural perception of a process control flow, which naturally inspires us to repurpose ROP as a robust and effective form of software obfuscation. Although previous work already explores ROP's effectiveness as an obfuscation technique, evolving reverse engineering research raises the need for principled reasoning to understand the strengths and limitations of ROP-based mechanisms against man-at-the-end (MATE) attacks. To this end, we propose ROPFuscator, a fine-grained obfuscation framework for C/C++ programs using ROP. We incorporate opaque predicates and constants and a novel instruction hiding technique to withstand sophisticated MATE attacks. More importantly, we introduce a realistic and unified threat model to thoroughly evaluate ROPFuscator and provide principled reasoning on ROP-based obfuscation techniques that answer to code coverage, incurred overhead, correctness, robustness, and practicality challenges.
Type: | Report |
---|---|
Title: | Intertwining ROP Gadgets and Opaque Predicates for Robust Obfuscation |
Open access status: | An open access version is available from UCL Discovery |
DOI: | 10.48550/arXiv.2012.09163 |
Publisher version: | https://arxiv.org/abs/2012.09163 |
Language: | English |
Additional information: | This version is the version of record. For information on re-use, please refer to the publisher's terms and conditions. |
UCL classification: | UCL UCL > Provost and Vice Provost Offices > UCL BEAMS UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science |
URI: | https://discovery.ucl.ac.uk/id/eprint/10133166 |
Archive Staff Only
View Item |