Self-Modifying Code

2017 ◽  
Vol 8 (3) ◽  
pp. 24-41
Author(s):  
Chandan Kumar Behera ◽  
D. Lalitha Bhaskari

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.

2020 ◽  
Vol 2020 ◽  
pp. 1-15
Author(s):  
Feng Zhang ◽  
Lulu Li ◽  
Cong Liu ◽  
Qingtian Zeng

Source code similarity detection has extensive applications in computer programming teaching and software intellectual property protection. In the teaching of computer programming courses, students may utilize some complex source code obfuscation techniques, e.g., opaque predicates, loop unrolling, and function inlining and outlining, to reduce the similarity between code fragments and avoid the plagiarism detection. Existing source code similarity detection approaches only consider static features of source code, making it difficult to cope with more complex code obfuscation techniques. In this paper, we propose a novel source code similarity detection approach by considering the dynamic features at runtime of source code using process mining. More specifically, given two pieces of source code, their running logs are obtained by source code instrumentation and execution. Next, process mining is used to obtain the flow charts of the two pieces of source code by analyzing their collected running logs. Finally, similarity of the two pieces of source code is measured by computing the similarity of these two flow charts. Experimental results show that the proposed approach can deal with more complex obfuscation techniques including opaque predicates and loop unrolling as well as function inlining and outlining, which cannot be handled by existing work properly. Therefore, we argue that our approach can defeat commonly used code obfuscation techniques more effectively for source code similarity detection than the existing state-of-the-art approaches.


Author(s):  
Damian Wierzbicki ◽  
Kamil Krasuski

The article discusses handicaps in predicting values of rotation angles with regard to Heading, Pitch and Roll for an Unmanned Aerial Vehicle. Within the simulation of the rotation angle values, the linear, polynomial and logarithmic methods were used. The programme source code was written in the numerical editor Scilab 5.4.1. The source data for investigation were recorded by a measuring device Trimble UX-5. The article provides results of comparing the real values of Heading, Pitch and Roll rotation angles to findings obtained from the prediction methods. Based on the conducted research, it was found that the largest value of standard deviation parameter in prediction of the rotation angles is for the angle of Heading, as it equals approximately 5o, whereas the smallest ones are for the Roll and Pitch angles, equalling less than 1.4o.


2020 ◽  
Vol 10 (12) ◽  
pp. 4214
Author(s):  
Yuri De Pra ◽  
Federico Fontana

For its versatility, Python has become one of the most popular programming languages. In spite of its possibility to straightforwardly link native code with powerful libraries for scientific computing, the use of Python for real-time sound applications development is often neglected in favor of alternative programming languages, which are tailored to the digital music domain. This article introduces Python as a real-time software programming tool to interested readers, including Python developers who are new to the real time or, conversely, sound programmers who have not yet taken this language into consideration. Cython and Numba are proposed as libraries supporting agile development of efficient software running at machine level. Moreover, it is shown that refactoring few critical parts of the program under these libraries can dramatically improve the performances of a sound algorithm. Such improvements can be directly benchmarked within Python, thanks to the existence of appropriate code parsing resources. After introducing a simple sound processing example, two algorithms that are known from the literature are coded to show how Python can be effectively employed to program sound software. Finally, issues of efficiency are mainly discussed in terms of latency of the resulting applications. Overall, such issues suggest that the use of real-time Python should be limited to the prototyping phase, where the benefits of language flexibility prevail on low latency requirements, for instance, needed during computer music live performances.


2014 ◽  
Vol 519-520 ◽  
pp. 391-394
Author(s):  
Zhi Yue Wang ◽  
Wei Min Wu

With the rapid development of scripting language, javascript has been widely used in the application and web development industry.One of the main disadvantages of javascript for developers of commercial applications is the ease by which customers and competitors can study, analyze, and reuse the source code . Therefore, this paper proposes a technique of javascript code obfuscation based on control flow tansformations. The experimental results prove that,its effective protect javascript source code.


2021 ◽  
Vol 247 ◽  
pp. 21003
Author(s):  
C Demazière ◽  
A Tatidis ◽  
P Vinai

Capitalizing on some earlier work, this paper presents a novel Monte Carlo-based approach that allows estimating the neutron noise induced by stationary perturbations of macroscopic cross-sections in the frequency domain. This method relies on the prior computation using Monte Carlo of modified Green’s functions associated to the real part of the dynamic macroscopic cross-sections, mimicking equivalent subcritical problems driven by external neutron sources. Once such modified Green’s functions are estimated, the neutron noise induced by any type of perturbations can be recovered, by solving a linear algebra problem accounting for the interdependence between the real and imaginary parts of the governing balance equations. The newly derived method was demonstrated on a large homogeneous test system and on a small heterogeneous test system to provide results comparable to a diffusion-based solver specifically developed for neutron noise applications. The new method requires the specification by the user of the real part of the Fourier transform of the macroscopic cross-sections. This is accomplished using ACE-formatted cross-section files defined by the user. Beyond this input data preparation, no change to the Monte Carlo source code is necessary. This represents the main advantage of the proposed method as compared to similar efforts requiring extensive modifications to the Monte Carlo source code.


Author(s):  
Krishna Yadav ◽  
Rutuja Kamble ◽  
Sumit Kale ◽  
Yash Pazare ◽  
Pallavi Ahire

2013 ◽  
Vol 18 (4) ◽  
pp. 33-44
Author(s):  
Adam Kaliszan ◽  
Mariusz Glabowski ◽  
Sławomir Hanczewski ◽  
Dario Gallucci ◽  
Salvatore Vanini

Abstract This article presents a hybrid method for testing routing protocols specifically dedicated to mesh networks. The architecture of software routers is described and a graphic environment that would ensure effective configuration of test networks is proposed. The platform for tests of routing protocols presented in the article combines an implementation of routing protocols (the real control plane) with a router data plane simulator. The proposed solution provides an opportunity to test real implementations of routing protocols for any parameters of data plane, not limited by the physical implementation of a test network. The presented platform is based on an open source code


Author(s):  
Mariano Ceccato ◽  
Massimiliano Di Penta ◽  
Jasvir Nagra ◽  
Paolo Falcarin ◽  
Filippo Ricca ◽  
...  

2020 ◽  
Vol 2020 ◽  
pp. 1-15
Author(s):  
Feng Zhang ◽  
Guofan Li ◽  
Cong Liu ◽  
Qian Song

Source code similarity detection has various applications in code plagiarism detection and software intellectual property protection. In computer programming teaching, students may convert the source code written in one programming language into another language for their code assignment submission. Existing similarity measures of source code written in the same language are not applicable for the cross-language code similarity detection because of syntactic differences among different programming languages. Meanwhile, existing cross-language source similarity detection approaches are susceptible to complex code obfuscation techniques, such as replacing equivalent control structure and adding redundant statements. To solve this problem, we propose a cross-language code similarity detection (CLCSD) approach based on code flowcharts. In general, two source code fragments written in different programming languages are transformed into standardized code flowcharts (SCFC), and their similarity is obtained by measuring their corresponding SCFC. More specifically, we first introduce the standardized code flowchart (SCFC) model to be the uniform flowcharts representation of source code written in different languages. SCFC is language-independent, and therefore, it can be used as the intermediate structure for source code similarity detection. Meanwhile, transformation techniques are given to transform source code written in a specific programming language into an SCFC. Second, we propose the SCFC-SPGK algorithm based on the shortest path graph kernel to measure the similarity between two SCFCs. Thus, the similarity between two pieces of source code in different programming languages is given by the similarity between SCFCs. Experimental results show that compared with existing approaches, CLCSD has higher accuracy in cross-language source code similarity detection. Furthermore, CLCSD cannot only handle common source code obfuscation techniques used by students in computer programming teaching but also obtain nearly 90% accuracy in dealing with some complex obfuscation techniques.


Sign in / Sign up

Export Citation Format

Share Document