基于线程的控制流混淆
密码学与安全
2013-11-04 v1 编程语言
摘要
云计算和远程执行的日益普及使得程序安全尤为重要。代码混淆已被提出以增加攻击者理解程序的难度。本文利用多核处理技术大幅提高程序的复杂性,从而使逆向工程更加困难。我们提出了一种新颖的方法,能够在基本块级别将任意串行线程自动划分为任意数量的并行线程。该方法生成新的控制流图,在保留各基本块串行后继关系的同时,利用守卫机制确保任一时刻仅有一个基本块处于活动状态。对于 m 个线程和 n 个基本块,该方法可生成 m^n 种不同的组合,显著增加了执行状态的复杂性。我们提供了该算法的正确性证明,并在 LLVM 编译框架中实现了该算法。
引用
@article{arxiv.1311.0044,
title = {Thread-Based Obfuscation through Control-Flow Mangling},
author = {Rasha Salah Omar and Ahmed El-Mahdy and Erven Rohou},
journal= {arXiv preprint arXiv:1311.0044},
year = {2013}
}