SlideShare a Scribd company logo
1 of 8
Download to read offline
Quest Journals
Journal of Software Engineering and Simulation
Volume 3 ~ Issue 7 (2017) pp: 14-21
ISSN(Online) :2321-3795 ISSN (Print):2321-3809
www.questjournals.org
*Corresponding Author: *Ján Hurtuk 14 | Page
Department Of Computers And Informatics, Faculty Of Electrical Engineering And Informatics Technical
University Of Košice, Letná 9, 042 00 Košice, Slovak Republic,
Research Paper
Simple Obfuscation Tool for Software Protection
*
Ján Hurtuk1
, Branislav Madoš1
1
Department Of Computers And Informatics, Faculty Of Electrical Engineering And Informatics Technical
University Of Košice, Letná 9, 042 00 Košice, Slovak Republic,
Corresponding author: *Ján Hurtuk
Received 10 August, 2017; Accepted 12 August, 2017 © The author(s) 2017. Published with open access at
www.questjournals.org
ABSTRACT: This paper discusses the issue of source code obfuscation and also the creation of a tool for
automatic obfuscation of source code written in C language. The result is a tool that performs both data flow
and control flow obfuscation and allows the user to configure the applied transformation algorithm. For easier
and better usability the tool provides a graphical user interface, which brings possibility to control and
configure transformation process.
Keywords: C language, Obfuscator, Parser, Control flow obfuscation, Data flow obfuscation
I. INTRODUCTION
Malicious code is one of the indispensable components of today’s world where digitization is almost in
every industry, so it is important that antivirus software manufacturers do not wait for the attackers, but make
progress by developing newer, better and more sophisticated security mechanisms by creating new types of
malicious software. Since a variety of antivirus programs use the method of fingerprints or signatures for quick
scan of individual files, the use of automated obfuscators, can be considered a powerful tool in searching for
various modifications of specific malicious code samples.
II. OBFUSCATION CATEGORIES
Figure 1 shows several kinds of intellectual property protections contained in the source code. One of
them is also obfuscation. Obfuscation is a process that involves editing the source code to disable static and
dynamic code analysis while maintaining the original functionality in the transformed code. Source code
analysis is strongly connected with process of reverse engineering, which uses disassemblers and decompilers to
reveal data structures and control flow of source code.
Figure 1 Intellectual Protection Categories.
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 15 | Page
According to the basic taxonomy from document [1] shown in Figure 2, obfuscation transformations
are divided into four categories depending on the target information.
Figure 2 Obfuscation Categories.
A. Layout Obfuscation: This type of obfuscation aims on modifying those information in code, which are not
necessary for the execution or does not affect the code functionality when removed. This includes trivial
transformations focused on making the code harder to be understood by human reader, for example:
renaming identifiers, removing comments and formatting or removing statement used for logging purposes
[2].
B. Data flow obfuscation: Aims on modifying data structures in the given code. It contains transformations
which modify data types and ways used for accessing the data. This type of obfuscation is divided into three
subcategories [3].
Figure 3 Data Flow Obfuscation Categories.
Storage and encoding obfuscation: Storage obfuscations modify the way in which data are stored in the
memory, for example: changing data scope from local to global, or from local to elements of object. Encoding
transformations influence the way of data interpretation, for example: array indexing as shown on Figure 4.
Figure 4 Storage and Encoding Obfuscation Principles.
1. Aggregation obfuscation: This category contains data joining and partitioning transformations, for
example: concatenation of multiple arrays to single array or encoding boolean value into two integers and
their comparison.
2. Ordering obfuscation: Contains transformations which modify the ordering of data structures, for
example: reorder instance variables and function declarations, reorder methods, reorder arrays.
C. Control flow obfuscation: Contains transformations that attempt to obscure the control flow of the source
application. This type is divided into four subcategories based on the operation they perform, see Figure 5.
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 16 | Page
Figure 5 Control Flow Obfuscation Categories.
1. Aggregation obfuscation: The transformation modifies the grouping in which the program commands are
located. For example, replacing a function call with command from the function body, this technique is
called method inlining. Applying this adjustment to all calls will give us a very long sequence code. This
technique of obfuscation, according to the authors of the publication [3], is highly resistant because it is a
totally one-way transformation, but it is possible to create a tool for searching recurring statement
sequences, which can reveal the use of this type of transformation. There is also the method outlining
approach that searches for recurring code segments and replaces them with the calls of artificially created
functions, but with this method, we need to make sure that the function is called multiple times [4].
2. Ordering transformation: The transformation adjusts the order in which the commands are executed. For
example, we can refer to the flipping cycle direction, or the unpacking cycle when the first and last iteration
is different from the others, or the separation of even and odd iterations. This also includes inserting of
conditional or unconditional jumps [5]. On Figure 6 are shown some basic examples of ordering
transformation.
Figure 6 Control Flow Ordering Transformation Examples.
3. Computation Obfuscation: Transformation hides the real sequence of commands execution. This goal can
be achieved by inserting a dead or blank code, which is a command that does not affect program functionality,
such as NOP (No Operation) in Assembler [6]. The dead code can also consist of a more complex block of
instructions that will never be executed. We can see some dead code examples in table 1.
Table 1 Dead Code Obfuscation Examples
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 17 | Page
D. Preventive Obfuscation: Unlike the previous two methods, this type of obfuscation targets its
modifications on analyzing tools and tries to make de-compilers and de-obfuscators not work properly. This
type of obfuscation is divided into two categories.
1. Inherent Obfuscation: This kind of transformation focuses on the basic methods used by de-obfuscators,
and tries to exacerbate their effectiveness. For example, when rotating a cycle, a fictitious data dependence
is added to its body, and hence the obfuscation of the control flow execution is more difficult to remove.
2. Targeted Obfuscation: It consists of using transformations designed to degrade the performance of
specific analytical tools. If we know the analytical methods of a particular tool, we can incorporate
structures into the code, that attack the errors in these methods and thus, to a certain extent, or even
completely disable the given analytical tool.
III. EXISTING OBFUSCATION SOFTWARE
Our goal is to make a tool for automatic C code obfuscation. In order to fulfill this task, we have
analyzed existing solutions. In their analysis, we looked at what kind of obfuscation they provide, how
configurable are they, how difficult is their installation, if they are available for different platforms and we also
looked at their usability.
A. COBF 1.06
The program whose main goal is to deter a person from reading and understanding the source code [7]. It
accomplishes this goal by removing comments, removing the code formatting, and also renaming variable and
function identifiers. The author is Bernard Baier and the latest version of this program 1.06 was released in
2006. The program is distributed as a freeware / shareware. There are executable binary files for Windows as
well as files and instructions needed for compiling it for other platforms. COBF 1.06 is used as a command line
tool and offers a variety of configuration options using the input parameters. Input parameters are divided into
three groups: basic parameters, output parameters and debug parameters. Using the basic parameters, you can
set the path to the library files you use, edit the list of mapped identifiers, set the use of custom identifiers,
define a set of non-obfuscated identifiers, specify the output folder, and also set the script that calls the
preprocessor. Using output parameters, it is possible to set the program to leave the original filenames after
obfuscation, to stack all the output files into one, or not to perform the obfuscation of strings because string
characters are standardly encoded into their hex ASCII values. Thanks to the debugging parameter, you can see
comments on the obfuscated identifiers, add their original names to the identifiers, keep the temporary files, and
also turn on the ”filtering mode” and thus turn off the obfuscation. Thanks to all input parameters, we can
transform programs with multiple header or library files, selecting which of these files will be obfuscated, and
also which variables, macros, or features will not be obfuscated. It is also possible to specify new names of
identifiers thanks to the mapping list, which we can edit anyhow.
B. Snob
Snob - Simple (or Stupid) name obfuscator as described by author [8], is a program designed to
obfuscate names, titles and identifiers. Snob is available for the Windows operating system in the form of a
runtime file. No installation is needed, this file is used as a command line tool with two parameters, the first one
is input folder with files that we want to obfuscate and the second one is the output folder. This program is a tool
for automatic obfuscating of any language if we have a defined configuration file for it. This file contains the
rules for obfuscation defined using regular expressions. Using these rules, it is possible to set the strings, which
has to be obfuscated, it is also possible to specify the strings, which must be left in the original state and also to
define a set of language-specific symbols and keywords. We can find configuration file for C language and also
configuration files for other languages.
C. Scripts Encryptor
The main purpose of the program is to tangle and obfuscate the source code written in ASP, HTML,
JavaScript and VBScript. It also offers the ability to encode publicly available web files such as HTML,
JavaScript or CSS, as well as minimizing C/C++ and JavaScript code. This program is a commercial product
that is only available for the Microsoft Windows operating system and provides support for all new releases of
this operating system. Unlike previous tools, it provides a graphical user interface, while the previous ones are
only used by the command line. On the website [9], we can find a well-made documentation that describes all
the functionality, however it does not provide much documentation for C code obfuscation, because the only
available editing feature is to minimize it.
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 18 | Page
IV. SOLUTION DESIGN
From previous analysis of existing tools for automatic obfuscation, we decided to make a tool that provides both
data flow and control flow obfuscation, which will be configured using graphical user interface to ensure easy
and intuitive controlling.
A. Graphical user interface
In order to achieve simplicity in use, individual inputs and algorithm settings will be customized using
generally known components that widely used in web browsers. These components will include radio buttons,
check boxes, buttons and text inputs.
B. Data flow obfuscation
The data flow obfuscation will consist of renaming identifiers, reordering the function and variable
declarations, tangling of numeric values, and encoding strings into human meaningless form. The program will
provide the ability to specify an input mapping file to identify specific pairs consisting of original identifier and
their obfuscated form. It will also be possible to specify the list of identifiers, which will remain in their original
state. To preserve the functionality of the code, it is important to leave the original names of the identifiers
derived from external library files, the so-called system libraries. We can only edit identifiers that are declared
directly in the input file. Functions and variables declarations will always be reordered randomly.
Figure 7 Prototype of Graphic Design Interface.
1. Integers Mangling: Integer values will be rewritten to expressions consisting of addition and subtraction,
some values will be rewritten into their hexadecimal representation. The example can be seen on the Figure
8.
Figure 8 Integers Mangling.
2. Strings Encoding: C language allows using special symbols in strings, these special symbols begin with the
prefix of the ”n” slash followed by one or more additional characters. One of the special symbols is the
hexadecimal shape of the letter, for example: ”nx4d”, this symbol is translated into a character representing
the value ”4d” from the ASCII table. This allows us to use a hexadecimal value symbol to mask individual
letters in strings. The example is in the picture 9.
Figure 9 String Encoding Example.
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 19 | Page
C. Control flow obfuscation
Obfuscation of the control flow will consist of wrapping statement sequences into the body of newly created IF,
FOR or WHILE statement. For alternatives, we flip conditions and modify the name of the control variable. For
cycle commands, we modify the execution conditions and change the increment to decrement, and vice versa.
1. Wrapping sequences: The user will be able to specify the interval of the number of commands in the
sequence that will be needed for the wrapping. Based on the range of this interval, the target number of
commands will be randomly selected, after which the sequence is wrapped. User can also use the settings to
specify which of the commands will be used for wrapping. If the user selects more than one option, the
wrapping statement will be randomly selected from this set [12].
2. Flipping condition in alternatives: In the case of an alternative command, the evaluation condition is
negated and then commands are exchanged between the bodies of the blocks. Example can be seen on the
Figure 10 [12].
3.
Figure 10 Flipping Conditions.
V. SOLUTION IMPLEMENTATION
For implementation, we chose the Java programming language and the IntelliJ IDEA development environment.
We have chosen this because we know this environment very well and it provides a full support for writing
programs in Java. As project manager, we chose Apache Maven, mainly because it’s managing dependencies
from external libraries.
A. C Code Parser
If we want to modify the source code written in C, we need to transform it into a form in which it is
easy to navigate, analyze and modify it. The most appropriate solution is transformation into an abstract syntax
tree. We used the Pycparser tool[10] for the transformation. It is a tool written in python and is designed to parse
the C language. Among the examples of uses that the author attached to the distribution is also the conversion
from the C language code to the abstract tree. For our needs, we have slightly modified these scripts, and we
added functionality to load the input from the file and then write the result to the file. We did this because we
will have to call them from our application using Java, and with the arguments of these scripts we will be able to
send the paths to the required files. The only downside of this tool is the need for a Python interpreter that is
used to call transformation scripts. For proper functionality, user must enter the path to this interpreter.
B. Processing of Header Files
Almost every source code written in C contains directives for accessing library files for preprocessor.
The contents of these files are also definitions of new types and functions that can be used in the code. In order
to successfully process the code using Pycparser, it is necessary for this tool to know all of these definitions.
Pycparser uses cpp, a C preprocessor for processing these library files. As a result, this tool is an essential part
of its use.
C. Graphic User Interface
Obfuscator is controlled through the user interface (see picture 11), that we have implemented using
components from the JavaFX library. ”JavaFX is a set of graphics and media packages that enables developers
to design, create, test, debug, and deploy rich client applications that operate consistently across diverse
platforms.” [11].
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 20 | Page
Figure 11 Graphic User Interface.
D. Obfuscator Tool Components
In order to gain better understanding of program functionality, we decided to divide it’s functionality into the
following components:
 Main - The main module secures running of the entire application, initializes other classes, and includes
functionality related to configuration and user interface control. Responds to user inputs and adjusts the
obfuscation transform settings. It also carries out the initialization actions necessary for a correct
transformation.
 Files Handler - Large amount of input algorithms are loaded from files, and some files are also generated
when implementing the algorithm, that is why we decided to create a custom module for them. This module
serves for storing, editing, analyzing and also making these files available for other modules.
 Tree Handler - This module contains the obfuscate transformation settings and also includes the functionality
associated with its execution.
 Utils - A helper module that contains methods for obtaining random numbers and strings used to create new
identifiers. It also contains the methods needed to mask the strings.
VI. CONCLUSION
We have succeeded in creating obfuscation tool consisting of simple components that use external
module functionality for their operation. These external modules are developed by a strong community of
enthusiasts who are involved in editing using publicly available repositories. A great advantage of the output
solution is also the use of code transformation to the abstract syntax tree, which represents a structure that every
programmer knows very well and therefore this tool is a good basis for eventual editing and upgrading.
Simple Obfuscation Tool for Software Protection
*Corresponding Author: *Ján Hurtuk 21 | Page
ACKNOWLEDGEMENTS
This work was supported by the project 003TUKE-4/2017 Implementation of Modern Methods and Education
Forms in the Area of Security of Information and Communication Technologies towards Requirements of
Labour Market. The project is being solved at the Department of Computers and Informatics, Faculty of
Electrical Engineering and Informatics, Technical University of Košice.
REFERENCES
[1]. C. COLLBERG, C. THOMBORSON, and D. LOW, A Taxonomy of Obfuscating Transformations. The University of Auckland
- Department of Computer Science, 1988, technical Report 148. [Online].
Available:http://profs.sci.univr.it/_giaco/download/Watermarking-Obfuscation/Obfuscation%20Taxonomy.pdf
[2]. C. LINN and S. DEBRAY, Obfuscation of executable code to improve resistance to static disassembly Computer Security
Symposium (CSS ’03) pp. 290-299, 2003.
[3]. C. COLLBERG and C. THOMBORSON, Watermarking, tamper-proofing, and obfuscation tools for software protection. IEEE
Trans. Software Eng. 2002, pp. 735-746., 2002.
[4]. T. OGISO, Y. SAKABE, M. SOSHI, and A. MIYAJI, Software obfuscation on a theoretical basis and its implementation. IEEE
Trans. Fundamentals, E86-A(1),, 2003.
[5]. M. UCHNAR, Hybrid system for malware detection. SCYR 2017. - Koice : TU, 2017 S. 124 - 125. – ISBN 978-80-553-3162-1,
2017.
[6]. N. ADAM, B. MADOS, M. CAJKOVSKY, J. HURTUK, and T. TOMCAK, Methods of the Data Mining and Machine Learning
in Computer Security. Acta Electrotechnica et Informatica. Year 14, n. 2 (2014), ISSN 1335-8243 p 46-50, 2014. [Online].
Available: http://aei.tuke.sk/papers/2014/2/08 Mados Adam.pdf
[7]. COBF 1.06. [Online]. Available: http://www.plexaure.de/cms/index.php?id=cobf
[8]. Snob - Simple name obfuscator. [Online]. Available: http://www.macroexpressions.com/snob.html
[9]. Scripts Encryptor. [Online]. Available: http://www.dennisbabkin.com/screnc/
[10]. Pycparser - Complete C99 parser in pure Python. [Online]. Available: https://github.com/eliben/pycparser
[11]. What is JavaFX? [Online]. Available: http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm
[12]. F.A.P. Petitcolas, R. Andersson, J. Kuhn and G. Markus, Information Hiding – A Survey, In: Proceedings of the IEEE, special
issue on protection of multimedia content, 87(7):1062-1078, July 1999.
*Ján Hurtuk1. "Simple Obfuscation Tool for Software Protection." Quest Journals Journal of
Software Engineering and Simulation 3.7 (2017): 14-21.

More Related Content

What's hot

Ece iv-fundamentals of hdl [10 ec45]-notes
Ece iv-fundamentals of hdl [10 ec45]-notesEce iv-fundamentals of hdl [10 ec45]-notes
Ece iv-fundamentals of hdl [10 ec45]-notessiddu kadiwal
 
02 addressing modes 6800
02 addressing modes 680002 addressing modes 6800
02 addressing modes 6800kashambabu
 
JPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATION
JPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATIONJPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATION
JPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATIONcsandit
 
A Programmatic View and Implementation of XML
A Programmatic View and Implementation of XMLA Programmatic View and Implementation of XML
A Programmatic View and Implementation of XMLCSCJournals
 
BMID training - Mobyle Workshop - September 28, 2012
BMID training  - Mobyle Workshop - September 28, 2012BMID training  - Mobyle Workshop - September 28, 2012
BMID training - Mobyle Workshop - September 28, 2012Hervé Ménager
 
Abstract
AbstractAbstract
Abstractbutest
 
Vb6 ch.6-3 cci
Vb6 ch.6-3 cciVb6 ch.6-3 cci
Vb6 ch.6-3 cciFahim Khan
 
C programming structures & union
C programming structures & unionC programming structures & union
C programming structures & unionBathshebaparimala
 
Basic construction of c
Basic construction of cBasic construction of c
Basic construction of ckinish kumar
 
Modeling Aspects with AP&P Components
Modeling Aspects with AP&P ComponentsModeling Aspects with AP&P Components
Modeling Aspects with AP&P Componentsmukhtarhudaya
 
JCL FOR FRESHERS
JCL FOR FRESHERSJCL FOR FRESHERS
JCL FOR FRESHERSNirmal Pati
 
Using SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint developmentUsing SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint developmentPranav Sharma
 
Extended distributed uml based protocol
Extended distributed uml based protocolExtended distributed uml based protocol
Extended distributed uml based protocolijcseit
 
Configuration management for lyee software
Configuration management for lyee softwareConfiguration management for lyee software
Configuration management for lyee softwaremariase324
 

What's hot (17)

Ece iv-fundamentals of hdl [10 ec45]-notes
Ece iv-fundamentals of hdl [10 ec45]-notesEce iv-fundamentals of hdl [10 ec45]-notes
Ece iv-fundamentals of hdl [10 ec45]-notes
 
02 addressing modes 6800
02 addressing modes 680002 addressing modes 6800
02 addressing modes 6800
 
JPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATION
JPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATIONJPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATION
JPL : IMPLEMENTATION OF A PROLOG SYSTEM SUPPORTING INCREMENTAL TABULATION
 
A Programmatic View and Implementation of XML
A Programmatic View and Implementation of XMLA Programmatic View and Implementation of XML
A Programmatic View and Implementation of XML
 
BMID training - Mobyle Workshop - September 28, 2012
BMID training  - Mobyle Workshop - September 28, 2012BMID training  - Mobyle Workshop - September 28, 2012
BMID training - Mobyle Workshop - September 28, 2012
 
Unit 2
Unit 2Unit 2
Unit 2
 
C# Unit 2 notes
C# Unit 2 notesC# Unit 2 notes
C# Unit 2 notes
 
C# Unit5 Notes
C# Unit5 NotesC# Unit5 Notes
C# Unit5 Notes
 
Abstract
AbstractAbstract
Abstract
 
Vb6 ch.6-3 cci
Vb6 ch.6-3 cciVb6 ch.6-3 cci
Vb6 ch.6-3 cci
 
C programming structures & union
C programming structures & unionC programming structures & union
C programming structures & union
 
Basic construction of c
Basic construction of cBasic construction of c
Basic construction of c
 
Modeling Aspects with AP&P Components
Modeling Aspects with AP&P ComponentsModeling Aspects with AP&P Components
Modeling Aspects with AP&P Components
 
JCL FOR FRESHERS
JCL FOR FRESHERSJCL FOR FRESHERS
JCL FOR FRESHERS
 
Using SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint developmentUsing SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint development
 
Extended distributed uml based protocol
Extended distributed uml based protocolExtended distributed uml based protocol
Extended distributed uml based protocol
 
Configuration management for lyee software
Configuration management for lyee softwareConfiguration management for lyee software
Configuration management for lyee software
 

Similar to Simple Obfuscation Tool for Software Protection

Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Binary obfuscation using signals
Binary obfuscation using signalsBinary obfuscation using signals
Binary obfuscation using signalsUltraUploader
 
A Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism DetectionA Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism DetectionJames Heller
 
Binary code obfuscation through c++ template meta programming
Binary code obfuscation through c++ template meta programmingBinary code obfuscation through c++ template meta programming
Binary code obfuscation through c++ template meta programmingnong_dan
 
RETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATIONRETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATIONcsandit
 
A Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse EngineeringA Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse Engineeringijsrd.com
 
29-Krishan Kumar
29-Krishan Kumar29-Krishan Kumar
29-Krishan Kumarkrishan8018
 
Software Systems Modularization
Software Systems ModularizationSoftware Systems Modularization
Software Systems Modularizationchiao-fan yang
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++ shammi mehra
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETWaqas Tariq
 
WhitePaperTemplate
WhitePaperTemplateWhitePaperTemplate
WhitePaperTemplateJo Marques
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...eSAT Journals
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3Diane Allen
 
Design patterns fast track
Design patterns fast trackDesign patterns fast track
Design patterns fast trackBinu Bhasuran
 
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications neirew J
 

Similar to Simple Obfuscation Tool for Software Protection (20)

Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Binary obfuscation using signals
Binary obfuscation using signalsBinary obfuscation using signals
Binary obfuscation using signals
 
A Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism DetectionA Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism Detection
 
Binary code obfuscation through c++ template meta programming
Binary code obfuscation through c++ template meta programmingBinary code obfuscation through c++ template meta programming
Binary code obfuscation through c++ template meta programming
 
RETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATIONRETURN ORIENTED OBFUSCATION
RETURN ORIENTED OBFUSCATION
 
BigDataDebugging
BigDataDebuggingBigDataDebugging
BigDataDebugging
 
A Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse EngineeringA Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse Engineering
 
29-Krishan Kumar
29-Krishan Kumar29-Krishan Kumar
29-Krishan Kumar
 
A035401010
A035401010A035401010
A035401010
 
Software Systems Modularization
Software Systems ModularizationSoftware Systems Modularization
Software Systems Modularization
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NET
 
WhitePaperTemplate
WhitePaperTemplateWhitePaperTemplate
WhitePaperTemplate
 
Ss debuggers
Ss debuggersSs debuggers
Ss debuggers
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
06 fse design
06 fse design06 fse design
06 fse design
 
Design patterns fast track
Design patterns fast trackDesign patterns fast track
Design patterns fast track
 
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
 

More from QUESTJOURNAL

On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...
On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...
On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...QUESTJOURNAL
 
The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...
The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...
The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...QUESTJOURNAL
 
Recruitment Practices And Staff Performance In Public Universities: A Case St...
Recruitment Practices And Staff Performance In Public Universities: A Case St...Recruitment Practices And Staff Performance In Public Universities: A Case St...
Recruitment Practices And Staff Performance In Public Universities: A Case St...QUESTJOURNAL
 
Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...
Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...
Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...QUESTJOURNAL
 
Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...
Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...
Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...QUESTJOURNAL
 
Steganographic Technique Using Instant Messaging Conversation Dynamics
Steganographic Technique Using Instant Messaging Conversation DynamicsSteganographic Technique Using Instant Messaging Conversation Dynamics
Steganographic Technique Using Instant Messaging Conversation DynamicsQUESTJOURNAL
 
Block Hybrid Method for the Solution of General Second Order Ordinary Differe...
Block Hybrid Method for the Solution of General Second Order Ordinary Differe...Block Hybrid Method for the Solution of General Second Order Ordinary Differe...
Block Hybrid Method for the Solution of General Second Order Ordinary Differe...QUESTJOURNAL
 
Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...
Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...
Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...QUESTJOURNAL
 
Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...
Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...
Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...QUESTJOURNAL
 
The Teller & The Tales: A Study of The Novels of Amitav Ghosh
The Teller & The Tales: A Study of The Novels of Amitav GhoshThe Teller & The Tales: A Study of The Novels of Amitav Ghosh
The Teller & The Tales: A Study of The Novels of Amitav GhoshQUESTJOURNAL
 
Harmony in Philip Larkin’s Poems
Harmony in Philip Larkin’s PoemsHarmony in Philip Larkin’s Poems
Harmony in Philip Larkin’s PoemsQUESTJOURNAL
 
The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...
The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...
The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...QUESTJOURNAL
 
The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...
The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...
The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...QUESTJOURNAL
 
Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...
Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...
Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...QUESTJOURNAL
 
Professional Competences: An Integrative Approach for Defining The Training C...
Professional Competences: An Integrative Approach for Defining The Training C...Professional Competences: An Integrative Approach for Defining The Training C...
Professional Competences: An Integrative Approach for Defining The Training C...QUESTJOURNAL
 
Resisting Total Marginality: Understanding African-American College Students’...
Resisting Total Marginality: Understanding African-American College Students’...Resisting Total Marginality: Understanding African-American College Students’...
Resisting Total Marginality: Understanding African-American College Students’...QUESTJOURNAL
 
“To the Truthful Death, From the Shining Life” By Joe Varghese
“To the Truthful Death, From the Shining Life” By Joe Varghese“To the Truthful Death, From the Shining Life” By Joe Varghese
“To the Truthful Death, From the Shining Life” By Joe VargheseQUESTJOURNAL
 
Alternative dispute resolution and civil litigation barriers to access to jus...
Alternative dispute resolution and civil litigation barriers to access to jus...Alternative dispute resolution and civil litigation barriers to access to jus...
Alternative dispute resolution and civil litigation barriers to access to jus...QUESTJOURNAL
 
Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...
Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...
Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...QUESTJOURNAL
 
Corporate Reputation And Earnings Quality of Listed Firms in Nigeria
Corporate Reputation And Earnings Quality of Listed Firms in NigeriaCorporate Reputation And Earnings Quality of Listed Firms in Nigeria
Corporate Reputation And Earnings Quality of Listed Firms in NigeriaQUESTJOURNAL
 

More from QUESTJOURNAL (20)

On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...
On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...
On the Use of the Causal Analysis in Small Type Fit Indices of Adult Mathemat...
 
The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...
The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...
The Sov’reign Shrine of Veiled Melancholy- The Shadow of Consumption on La Be...
 
Recruitment Practices And Staff Performance In Public Universities: A Case St...
Recruitment Practices And Staff Performance In Public Universities: A Case St...Recruitment Practices And Staff Performance In Public Universities: A Case St...
Recruitment Practices And Staff Performance In Public Universities: A Case St...
 
Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...
Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...
Pesse Na Siri’ Budgetary System: A Historiography Study of Luwu Kingdom in Is...
 
Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...
Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...
Fabrication of Complete Dentures for A Patient with Resorbed Mandibular Anter...
 
Steganographic Technique Using Instant Messaging Conversation Dynamics
Steganographic Technique Using Instant Messaging Conversation DynamicsSteganographic Technique Using Instant Messaging Conversation Dynamics
Steganographic Technique Using Instant Messaging Conversation Dynamics
 
Block Hybrid Method for the Solution of General Second Order Ordinary Differe...
Block Hybrid Method for the Solution of General Second Order Ordinary Differe...Block Hybrid Method for the Solution of General Second Order Ordinary Differe...
Block Hybrid Method for the Solution of General Second Order Ordinary Differe...
 
Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...
Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...
Modeling – Based Instructional Strategy for Enhancing Problem Solving Ability...
 
Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...
Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...
Exploring the Effectiveness of the Arabic LanguageTeaching Methods in Indones...
 
The Teller & The Tales: A Study of The Novels of Amitav Ghosh
The Teller & The Tales: A Study of The Novels of Amitav GhoshThe Teller & The Tales: A Study of The Novels of Amitav Ghosh
The Teller & The Tales: A Study of The Novels of Amitav Ghosh
 
Harmony in Philip Larkin’s Poems
Harmony in Philip Larkin’s PoemsHarmony in Philip Larkin’s Poems
Harmony in Philip Larkin’s Poems
 
The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...
The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...
The Influence of Religiosity on Marital Satisfaction and Stability AmongChris...
 
The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...
The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...
The SA0 Group Reservoir ’S Compositive Evaluation In The Central Developing P...
 
Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...
Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...
Down the Purgatory of Memories:The Pain of Remembering in M alayalam Naxal Ci...
 
Professional Competences: An Integrative Approach for Defining The Training C...
Professional Competences: An Integrative Approach for Defining The Training C...Professional Competences: An Integrative Approach for Defining The Training C...
Professional Competences: An Integrative Approach for Defining The Training C...
 
Resisting Total Marginality: Understanding African-American College Students’...
Resisting Total Marginality: Understanding African-American College Students’...Resisting Total Marginality: Understanding African-American College Students’...
Resisting Total Marginality: Understanding African-American College Students’...
 
“To the Truthful Death, From the Shining Life” By Joe Varghese
“To the Truthful Death, From the Shining Life” By Joe Varghese“To the Truthful Death, From the Shining Life” By Joe Varghese
“To the Truthful Death, From the Shining Life” By Joe Varghese
 
Alternative dispute resolution and civil litigation barriers to access to jus...
Alternative dispute resolution and civil litigation barriers to access to jus...Alternative dispute resolution and civil litigation barriers to access to jus...
Alternative dispute resolution and civil litigation barriers to access to jus...
 
Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...
Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...
Challenges to Traditional Gender Norms in Mary Wollstonecraft’s A Vindication...
 
Corporate Reputation And Earnings Quality of Listed Firms in Nigeria
Corporate Reputation And Earnings Quality of Listed Firms in NigeriaCorporate Reputation And Earnings Quality of Listed Firms in Nigeria
Corporate Reputation And Earnings Quality of Listed Firms in Nigeria
 

Recently uploaded

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 

Recently uploaded (20)

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 

Simple Obfuscation Tool for Software Protection

  • 1. Quest Journals Journal of Software Engineering and Simulation Volume 3 ~ Issue 7 (2017) pp: 14-21 ISSN(Online) :2321-3795 ISSN (Print):2321-3809 www.questjournals.org *Corresponding Author: *Ján Hurtuk 14 | Page Department Of Computers And Informatics, Faculty Of Electrical Engineering And Informatics Technical University Of Košice, Letná 9, 042 00 Košice, Slovak Republic, Research Paper Simple Obfuscation Tool for Software Protection * Ján Hurtuk1 , Branislav Madoš1 1 Department Of Computers And Informatics, Faculty Of Electrical Engineering And Informatics Technical University Of Košice, Letná 9, 042 00 Košice, Slovak Republic, Corresponding author: *Ján Hurtuk Received 10 August, 2017; Accepted 12 August, 2017 © The author(s) 2017. Published with open access at www.questjournals.org ABSTRACT: This paper discusses the issue of source code obfuscation and also the creation of a tool for automatic obfuscation of source code written in C language. The result is a tool that performs both data flow and control flow obfuscation and allows the user to configure the applied transformation algorithm. For easier and better usability the tool provides a graphical user interface, which brings possibility to control and configure transformation process. Keywords: C language, Obfuscator, Parser, Control flow obfuscation, Data flow obfuscation I. INTRODUCTION Malicious code is one of the indispensable components of today’s world where digitization is almost in every industry, so it is important that antivirus software manufacturers do not wait for the attackers, but make progress by developing newer, better and more sophisticated security mechanisms by creating new types of malicious software. Since a variety of antivirus programs use the method of fingerprints or signatures for quick scan of individual files, the use of automated obfuscators, can be considered a powerful tool in searching for various modifications of specific malicious code samples. II. OBFUSCATION CATEGORIES Figure 1 shows several kinds of intellectual property protections contained in the source code. One of them is also obfuscation. Obfuscation is a process that involves editing the source code to disable static and dynamic code analysis while maintaining the original functionality in the transformed code. Source code analysis is strongly connected with process of reverse engineering, which uses disassemblers and decompilers to reveal data structures and control flow of source code. Figure 1 Intellectual Protection Categories.
  • 2. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 15 | Page According to the basic taxonomy from document [1] shown in Figure 2, obfuscation transformations are divided into four categories depending on the target information. Figure 2 Obfuscation Categories. A. Layout Obfuscation: This type of obfuscation aims on modifying those information in code, which are not necessary for the execution or does not affect the code functionality when removed. This includes trivial transformations focused on making the code harder to be understood by human reader, for example: renaming identifiers, removing comments and formatting or removing statement used for logging purposes [2]. B. Data flow obfuscation: Aims on modifying data structures in the given code. It contains transformations which modify data types and ways used for accessing the data. This type of obfuscation is divided into three subcategories [3]. Figure 3 Data Flow Obfuscation Categories. Storage and encoding obfuscation: Storage obfuscations modify the way in which data are stored in the memory, for example: changing data scope from local to global, or from local to elements of object. Encoding transformations influence the way of data interpretation, for example: array indexing as shown on Figure 4. Figure 4 Storage and Encoding Obfuscation Principles. 1. Aggregation obfuscation: This category contains data joining and partitioning transformations, for example: concatenation of multiple arrays to single array or encoding boolean value into two integers and their comparison. 2. Ordering obfuscation: Contains transformations which modify the ordering of data structures, for example: reorder instance variables and function declarations, reorder methods, reorder arrays. C. Control flow obfuscation: Contains transformations that attempt to obscure the control flow of the source application. This type is divided into four subcategories based on the operation they perform, see Figure 5.
  • 3. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 16 | Page Figure 5 Control Flow Obfuscation Categories. 1. Aggregation obfuscation: The transformation modifies the grouping in which the program commands are located. For example, replacing a function call with command from the function body, this technique is called method inlining. Applying this adjustment to all calls will give us a very long sequence code. This technique of obfuscation, according to the authors of the publication [3], is highly resistant because it is a totally one-way transformation, but it is possible to create a tool for searching recurring statement sequences, which can reveal the use of this type of transformation. There is also the method outlining approach that searches for recurring code segments and replaces them with the calls of artificially created functions, but with this method, we need to make sure that the function is called multiple times [4]. 2. Ordering transformation: The transformation adjusts the order in which the commands are executed. For example, we can refer to the flipping cycle direction, or the unpacking cycle when the first and last iteration is different from the others, or the separation of even and odd iterations. This also includes inserting of conditional or unconditional jumps [5]. On Figure 6 are shown some basic examples of ordering transformation. Figure 6 Control Flow Ordering Transformation Examples. 3. Computation Obfuscation: Transformation hides the real sequence of commands execution. This goal can be achieved by inserting a dead or blank code, which is a command that does not affect program functionality, such as NOP (No Operation) in Assembler [6]. The dead code can also consist of a more complex block of instructions that will never be executed. We can see some dead code examples in table 1. Table 1 Dead Code Obfuscation Examples
  • 4. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 17 | Page D. Preventive Obfuscation: Unlike the previous two methods, this type of obfuscation targets its modifications on analyzing tools and tries to make de-compilers and de-obfuscators not work properly. This type of obfuscation is divided into two categories. 1. Inherent Obfuscation: This kind of transformation focuses on the basic methods used by de-obfuscators, and tries to exacerbate their effectiveness. For example, when rotating a cycle, a fictitious data dependence is added to its body, and hence the obfuscation of the control flow execution is more difficult to remove. 2. Targeted Obfuscation: It consists of using transformations designed to degrade the performance of specific analytical tools. If we know the analytical methods of a particular tool, we can incorporate structures into the code, that attack the errors in these methods and thus, to a certain extent, or even completely disable the given analytical tool. III. EXISTING OBFUSCATION SOFTWARE Our goal is to make a tool for automatic C code obfuscation. In order to fulfill this task, we have analyzed existing solutions. In their analysis, we looked at what kind of obfuscation they provide, how configurable are they, how difficult is their installation, if they are available for different platforms and we also looked at their usability. A. COBF 1.06 The program whose main goal is to deter a person from reading and understanding the source code [7]. It accomplishes this goal by removing comments, removing the code formatting, and also renaming variable and function identifiers. The author is Bernard Baier and the latest version of this program 1.06 was released in 2006. The program is distributed as a freeware / shareware. There are executable binary files for Windows as well as files and instructions needed for compiling it for other platforms. COBF 1.06 is used as a command line tool and offers a variety of configuration options using the input parameters. Input parameters are divided into three groups: basic parameters, output parameters and debug parameters. Using the basic parameters, you can set the path to the library files you use, edit the list of mapped identifiers, set the use of custom identifiers, define a set of non-obfuscated identifiers, specify the output folder, and also set the script that calls the preprocessor. Using output parameters, it is possible to set the program to leave the original filenames after obfuscation, to stack all the output files into one, or not to perform the obfuscation of strings because string characters are standardly encoded into their hex ASCII values. Thanks to the debugging parameter, you can see comments on the obfuscated identifiers, add their original names to the identifiers, keep the temporary files, and also turn on the ”filtering mode” and thus turn off the obfuscation. Thanks to all input parameters, we can transform programs with multiple header or library files, selecting which of these files will be obfuscated, and also which variables, macros, or features will not be obfuscated. It is also possible to specify new names of identifiers thanks to the mapping list, which we can edit anyhow. B. Snob Snob - Simple (or Stupid) name obfuscator as described by author [8], is a program designed to obfuscate names, titles and identifiers. Snob is available for the Windows operating system in the form of a runtime file. No installation is needed, this file is used as a command line tool with two parameters, the first one is input folder with files that we want to obfuscate and the second one is the output folder. This program is a tool for automatic obfuscating of any language if we have a defined configuration file for it. This file contains the rules for obfuscation defined using regular expressions. Using these rules, it is possible to set the strings, which has to be obfuscated, it is also possible to specify the strings, which must be left in the original state and also to define a set of language-specific symbols and keywords. We can find configuration file for C language and also configuration files for other languages. C. Scripts Encryptor The main purpose of the program is to tangle and obfuscate the source code written in ASP, HTML, JavaScript and VBScript. It also offers the ability to encode publicly available web files such as HTML, JavaScript or CSS, as well as minimizing C/C++ and JavaScript code. This program is a commercial product that is only available for the Microsoft Windows operating system and provides support for all new releases of this operating system. Unlike previous tools, it provides a graphical user interface, while the previous ones are only used by the command line. On the website [9], we can find a well-made documentation that describes all the functionality, however it does not provide much documentation for C code obfuscation, because the only available editing feature is to minimize it.
  • 5. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 18 | Page IV. SOLUTION DESIGN From previous analysis of existing tools for automatic obfuscation, we decided to make a tool that provides both data flow and control flow obfuscation, which will be configured using graphical user interface to ensure easy and intuitive controlling. A. Graphical user interface In order to achieve simplicity in use, individual inputs and algorithm settings will be customized using generally known components that widely used in web browsers. These components will include radio buttons, check boxes, buttons and text inputs. B. Data flow obfuscation The data flow obfuscation will consist of renaming identifiers, reordering the function and variable declarations, tangling of numeric values, and encoding strings into human meaningless form. The program will provide the ability to specify an input mapping file to identify specific pairs consisting of original identifier and their obfuscated form. It will also be possible to specify the list of identifiers, which will remain in their original state. To preserve the functionality of the code, it is important to leave the original names of the identifiers derived from external library files, the so-called system libraries. We can only edit identifiers that are declared directly in the input file. Functions and variables declarations will always be reordered randomly. Figure 7 Prototype of Graphic Design Interface. 1. Integers Mangling: Integer values will be rewritten to expressions consisting of addition and subtraction, some values will be rewritten into their hexadecimal representation. The example can be seen on the Figure 8. Figure 8 Integers Mangling. 2. Strings Encoding: C language allows using special symbols in strings, these special symbols begin with the prefix of the ”n” slash followed by one or more additional characters. One of the special symbols is the hexadecimal shape of the letter, for example: ”nx4d”, this symbol is translated into a character representing the value ”4d” from the ASCII table. This allows us to use a hexadecimal value symbol to mask individual letters in strings. The example is in the picture 9. Figure 9 String Encoding Example.
  • 6. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 19 | Page C. Control flow obfuscation Obfuscation of the control flow will consist of wrapping statement sequences into the body of newly created IF, FOR or WHILE statement. For alternatives, we flip conditions and modify the name of the control variable. For cycle commands, we modify the execution conditions and change the increment to decrement, and vice versa. 1. Wrapping sequences: The user will be able to specify the interval of the number of commands in the sequence that will be needed for the wrapping. Based on the range of this interval, the target number of commands will be randomly selected, after which the sequence is wrapped. User can also use the settings to specify which of the commands will be used for wrapping. If the user selects more than one option, the wrapping statement will be randomly selected from this set [12]. 2. Flipping condition in alternatives: In the case of an alternative command, the evaluation condition is negated and then commands are exchanged between the bodies of the blocks. Example can be seen on the Figure 10 [12]. 3. Figure 10 Flipping Conditions. V. SOLUTION IMPLEMENTATION For implementation, we chose the Java programming language and the IntelliJ IDEA development environment. We have chosen this because we know this environment very well and it provides a full support for writing programs in Java. As project manager, we chose Apache Maven, mainly because it’s managing dependencies from external libraries. A. C Code Parser If we want to modify the source code written in C, we need to transform it into a form in which it is easy to navigate, analyze and modify it. The most appropriate solution is transformation into an abstract syntax tree. We used the Pycparser tool[10] for the transformation. It is a tool written in python and is designed to parse the C language. Among the examples of uses that the author attached to the distribution is also the conversion from the C language code to the abstract tree. For our needs, we have slightly modified these scripts, and we added functionality to load the input from the file and then write the result to the file. We did this because we will have to call them from our application using Java, and with the arguments of these scripts we will be able to send the paths to the required files. The only downside of this tool is the need for a Python interpreter that is used to call transformation scripts. For proper functionality, user must enter the path to this interpreter. B. Processing of Header Files Almost every source code written in C contains directives for accessing library files for preprocessor. The contents of these files are also definitions of new types and functions that can be used in the code. In order to successfully process the code using Pycparser, it is necessary for this tool to know all of these definitions. Pycparser uses cpp, a C preprocessor for processing these library files. As a result, this tool is an essential part of its use. C. Graphic User Interface Obfuscator is controlled through the user interface (see picture 11), that we have implemented using components from the JavaFX library. ”JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms.” [11].
  • 7. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 20 | Page Figure 11 Graphic User Interface. D. Obfuscator Tool Components In order to gain better understanding of program functionality, we decided to divide it’s functionality into the following components:  Main - The main module secures running of the entire application, initializes other classes, and includes functionality related to configuration and user interface control. Responds to user inputs and adjusts the obfuscation transform settings. It also carries out the initialization actions necessary for a correct transformation.  Files Handler - Large amount of input algorithms are loaded from files, and some files are also generated when implementing the algorithm, that is why we decided to create a custom module for them. This module serves for storing, editing, analyzing and also making these files available for other modules.  Tree Handler - This module contains the obfuscate transformation settings and also includes the functionality associated with its execution.  Utils - A helper module that contains methods for obtaining random numbers and strings used to create new identifiers. It also contains the methods needed to mask the strings. VI. CONCLUSION We have succeeded in creating obfuscation tool consisting of simple components that use external module functionality for their operation. These external modules are developed by a strong community of enthusiasts who are involved in editing using publicly available repositories. A great advantage of the output solution is also the use of code transformation to the abstract syntax tree, which represents a structure that every programmer knows very well and therefore this tool is a good basis for eventual editing and upgrading.
  • 8. Simple Obfuscation Tool for Software Protection *Corresponding Author: *Ján Hurtuk 21 | Page ACKNOWLEDGEMENTS This work was supported by the project 003TUKE-4/2017 Implementation of Modern Methods and Education Forms in the Area of Security of Information and Communication Technologies towards Requirements of Labour Market. The project is being solved at the Department of Computers and Informatics, Faculty of Electrical Engineering and Informatics, Technical University of Košice. REFERENCES [1]. C. COLLBERG, C. THOMBORSON, and D. LOW, A Taxonomy of Obfuscating Transformations. The University of Auckland - Department of Computer Science, 1988, technical Report 148. [Online]. Available:http://profs.sci.univr.it/_giaco/download/Watermarking-Obfuscation/Obfuscation%20Taxonomy.pdf [2]. C. LINN and S. DEBRAY, Obfuscation of executable code to improve resistance to static disassembly Computer Security Symposium (CSS ’03) pp. 290-299, 2003. [3]. C. COLLBERG and C. THOMBORSON, Watermarking, tamper-proofing, and obfuscation tools for software protection. IEEE Trans. Software Eng. 2002, pp. 735-746., 2002. [4]. T. OGISO, Y. SAKABE, M. SOSHI, and A. MIYAJI, Software obfuscation on a theoretical basis and its implementation. IEEE Trans. Fundamentals, E86-A(1),, 2003. [5]. M. UCHNAR, Hybrid system for malware detection. SCYR 2017. - Koice : TU, 2017 S. 124 - 125. – ISBN 978-80-553-3162-1, 2017. [6]. N. ADAM, B. MADOS, M. CAJKOVSKY, J. HURTUK, and T. TOMCAK, Methods of the Data Mining and Machine Learning in Computer Security. Acta Electrotechnica et Informatica. Year 14, n. 2 (2014), ISSN 1335-8243 p 46-50, 2014. [Online]. Available: http://aei.tuke.sk/papers/2014/2/08 Mados Adam.pdf [7]. COBF 1.06. [Online]. Available: http://www.plexaure.de/cms/index.php?id=cobf [8]. Snob - Simple name obfuscator. [Online]. Available: http://www.macroexpressions.com/snob.html [9]. Scripts Encryptor. [Online]. Available: http://www.dennisbabkin.com/screnc/ [10]. Pycparser - Complete C99 parser in pure Python. [Online]. Available: https://github.com/eliben/pycparser [11]. What is JavaFX? [Online]. Available: http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm [12]. F.A.P. Petitcolas, R. Andersson, J. Kuhn and G. Markus, Information Hiding – A Survey, In: Proceedings of the IEEE, special issue on protection of multimedia content, 87(7):1062-1078, July 1999. *Ján Hurtuk1. "Simple Obfuscation Tool for Software Protection." Quest Journals Journal of Software Engineering and Simulation 3.7 (2017): 14-21.