Please use this identifier to cite or link to this item:
|Title:||AN EFFICIENT SCHEME FOR SECURITY THROUGH SELF MODIFYING CODE|
|Keywords:||SOFTWARE PROCATATION;SELF MODIFYING CODE;ALGORITHM;ELECTRONICS AND COMPUTER ENGINEERING|
|Abstract:||Software piracy is a multi-billion dollar industry. While illegal copying is the most common example of intellectual property violations, software is also attacked in many unconventional ways. Some attackers attempt to reverse engineer the software, so that its working might be understood. While laws exist which prohibit the unauthorized usage of software programs, the sheer scale of intellectual property abuse makes it difficult for companies to prosecute individual offenders. Self modifying code is one of the most secure methods to protect software from being reverse engineered. In this scheme, the code keeps on modifying itself at runtime, thus preventing the attacker from having a complete view of the real program at any given time. However, this method has a principal drawback. It imposes severe performance constraints on the software being protected as the execution time increases rapidly, thus harming the prospects of it being used in real time. In this thesis, we have proposed a method to reduce this performance constraint to some extent, while not compromising on the aspect of security. A technique for code optimization known as basic block reordering is used. The principle behind basic block reordering is that infrequently executed code should be moved away, and frequently executed code should be placed sequentially, so that the normal flow of control should be a straight line sequence. We camouflaged an RSA encryption program by converting it into self modifying code, and then we optimized it by basic block reordering. To measure the execution time, we executed the RSA encryption program to encrypt a 20 Kilobyte text file. It was found that the application of basic block reordering on the self modifying code decreased the average execution time by about 7%. At the same time, basic block reordering marginally increased the size of the self modified code. The self modifying code and basic block reordering is implemented in GNU GCC 3.4.2, running on an Intel Core 2 Duo machine.|
|Research Supervisor/ Guide:||Garg, Kumkum|
|Appears in Collections:||MASTERS' DISSERTATIONS (E & C)|
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.