FACTOID # 15: Most people live in poverty in most African countries.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

Encyclopedia > Code morphing

Code morphing is a one of the approaches to protect software applications from reverse engineering, analysis, modifications, and cracking used in obfuscating software. This technology protects intermediate level code such as compiled from Java and .NET languages (C#, Visual Basic, etc) rather than binary object code. Code morphing breaks up the protected code into several processor commands or small command snippets and replaces them by others, while maintaining the same end result. Thus the protector obfuscates the code at the intermediate level. For example, Microsoft's Script Encoder obfuscates ASP, JScript, and VBScript files. Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... Reverse engineering (RE) is the process of taking something (a device, an electrical component, a software program, etc. ... Obfuscating software (also known as obfuscators) is software designed to inhibit reverse engineering of software even when source code is available, by converting it to obfuscated code, making the source code far less readable and almost impossible to understand by a human being. ... In computer science, object file or object code is an intermediate representation of code generated by a compiler after it processes a source code file. ...


Code morphing is a multilevel technology containing hundreds of unique code transformation patterns. In addition this technology transforms some intermediate layer commands into Virtual Machine commands (like P-Code). Code Morphing may also turn binary code into an undecipherable mess that is not similar to normal compiled code, and completely hides execution logic of the protected code. In general terms, a virtual machine in computer science is software that creates a virtualized environment between the computer platform and the end user in which the end user can operate software. ... The term binary code can mean several different things: There are a variety of different methods of coding numbers or symbols into strings of bits, including fixed-length binary numbers, prefix codes such as Huffman codes, and other coding techniques including arithmetic coding. ...


Unlike other code protectors, there is no concept of code decryption with this method. Protected code blocks are always in the executable state, and they are executed (interpreted) as transformed obfuscated code. The original intermediate code is completely absent and source code restoration is an NP-hard problem.


See also


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your location
Your comments
Please enter the 5-letter protection code


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.