Generalising the array split obfuscation |
| |
Authors: | Stephen Drape |
| |
Affiliation: | Department of Computer Science, University of Auckland, Private Bag 92019, Auckland, New Zealand |
| |
Abstract: | An obfuscation is a behaviour-preserving program transformation whose aim is to make a program “harder to understand”. Obfuscations are mainly applied to make reverse engineering of object-oriented programs more difficult. In this paper, we propose a fresh approach by obfuscating abstract data-types allowing us to develop structure-dependent obfuscations that would otherwise (traditionally) not be available. We regard obfuscation as data refinement enabling us to produce equations for proving correctness. We model the data-type operations as functional programs making our proofs easy to construct.We show how we can generalise an imperative obfuscation - an array split - so that we can apply it to abstract data-types and we give specific examples for lists and matrices. We develop a theorem which allows us, under certain conditions, to produce obfuscated operations directly. Our approach also allows us to produce random obfuscations and we give an example for our list data-type. |
| |
Keywords: | Obfuscation Abstract data-types Functional programming Generalising |
本文献已被 ScienceDirect 等数据库收录! |
|