Intertwining ROP Gadgets and Opaque Predicates for Robust Obfuscation

12/16/2020
by   Fukutomo Nakanishi, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/07/2023

Documenting Bioinformatics Software Via Reverse Engineering

Documentation is one of the most neglected activities in Software Engine...
research
07/02/2019

Report on the Obfuscated Integration of Software Protections

To counter man-at-the-end attacks such as reverse engineering and tamper...
research
07/02/2019

Extended Report on the Obfuscated Integration of Software Protections

To counter man-at-the-end attacks such as reverse engineering and tamper...
research
07/06/2020

Detile: Fine-Grained Information Leak Detection in Script Engines

Memory disclosure attacks play an important role in the exploitation of ...
research
08/06/2023

WASMixer: Binary Obfuscation for WebAssembly

WebAssembly (Wasm) is an emerging binary format that draws great attenti...
research
09/28/2018

A Systematic Study on Static Control Flow Obfuscation Techniques in Java

Control flow obfuscation (CFO) alters the control flow path of a program...
research
02/21/2019

Analysis of Recent Attacks based on Social Engineering Techniques

This paper attempts to strengthen the pursued research on social enginee...

Please sign up or login with your details

Forgot password? Click here to reset