Self-Modifying Code: A Provable Technique for Enhancing Program Obfuscation

Self-Modifying Code: A Provable Technique for Enhancing Program Obfuscation

Chandan Kumar Behera (Department of Computer Science and Systems Engineering, College of Engineering (A), Andhra University, Visakhapatnam, India) and D. Lalitha Bhaskari (Department of Computer Science and Systems Engineering, College of Engineering (A), Andhra University, Visakhapatnam, India)
Copyright: © 2017 |Pages: 18
DOI: 10.4018/IJSSE.2017070102

Abstract

This article describes how code obfuscation techniques aim to conceal the functionality of a program by mystifying the code so that it is unreadable or in an incomprehensible format. Since the objective of this article is to make a program obfuscated, the source code shall appear like normal native code and should be perfectly readable. As nobody can guess that the code is an obfuscated one, obviously it will be very tough to analyze. Nowadays, a lot of programs protect themselves from being analyzed by hiding their behaviors or compressing their semantics by using obfuscation techniques. On the contrary, self-modifying code (SMC) can challenge one's intellect to discover the real intrinsic meaning of the source code as it is difficult and strenuous to analyze, since the code gets modified dynamically during runtime. Hence, this article brings into play the underlying concepts of self-modifying codes for obfuscating the programs to construct a much better code protection model. Some techniques like indirect memory addressing, register renaming, direction-changing of instructions, segment ignoring, modification of registry content and many more are expounded in this article by using Assembly-level language, which is binary obfuscation.
Article Preview
Top

2. Types Of Obfuscation Techniques

Technically, an obfuscating algorithm takes a program P as input and produces a functionally equivalent program P′, but the program P′ will be inscrutable or obfuscated and do not reveal any more information about the inputted program P, i.e. reverse engineering the program P′ will be cumbersome, infeasible or cannot recover any information about P, after even using reasonable amount of resources (Madou, Anckaert et al., 2006). So, obfuscation techniques gain momentum as a protection mechanism for intellectual properties, which may contain within the program.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing