Flowtables
Luke Jones, Ryan Whelan, Jeremy Blackthorne, Graham Z. Baker · 2015
Obfuscation, in the most general sense, is widely applicable to intellectual property protection, software tamper resistance and cryptographic algorithms. We have created Flowtables, a LLVM-based obfuscator which aims to protect intellectual property, hardening programs against analysis by relocating the edges of the call graph to a different process. This process temporarily and minimally supplies edges back to the original program only at runtime. We call this transformation program skeletal inversion, and by effectively removing the call graph from a program, we defeat any interprocedural analyses. In addition, the newly externally malleable program skeleton enables unique metamorphism, with the beneficial property of arbitrarily complex functionality transformation.