With the proliferation of cloud computing, security becomes a key issue. Code obfuscation is a promising approach in that domain. It has been proposed to make an adversary confused about understanding the program, thereby making attacks more difficult. In this paper, we propose a novel method which exploits multi-core processing to substantially increase the complexity of programs, complicating the original ones. At basic block level, this method automatically partitions any serial thread into an arbitrary number of parallel threads. Moreover, the program semantics are preserved through using guards, guaranteeing that one basic-block be active at a time. Our method allows for possible combinations for a given program, for threads and basic-blocks, which significantly complicates the execution state, as well as changes the layout of basic blocks in memory. We provide a proof of correctness of the … |