Studienprojekte

Projekte sind ein essenzieller Bestandteil des Curriculums von Mobile Computing. Die Studierenden bekommen die Möglichkeit, das im Zuge ihres Studiums erworbene theoretische Wissen selbst praktisch umzusetzen. Ein sowohl für StudentInnen als auch für Lehrende immer wieder spannendes Unterrichtskonzept, in dem schon erfolgreiche Startups wie z.B. runtastic und Butleroy ihre Anfänge gefunden haben.

A Metamorphic Code Engine on ARM

Zeitraum
Mar 2017 - Jul 2017
FH Studierende
Marcel Breitenfellner
FH BetreuerIn
Dipl. Ing. Dr. techn. Erik Sonnleitner

The goal for the whole master thesis project is to build a state of the art metamorphic code engine which supports at least the ARM architecture, but preferably has an easy to adopt open design. In this first project we take a look at existing projects and technologies and how they solved this problem. In order to be able to compare different approaches we look into some methods of how to compare multiple generations of a metamorphic code engine like the ngram or opcode graph similarity.

Ziel

The goal for the whole master thesis project is to build a state of the art metamorphic code engine which supports at least the ARM architecture, but preferably has an easy to adopt open design. In this first project we take a look at existing projects and technologies and how they solved this problem.

A metamorphic code engine is a piece of software, which mutates a given piece of code and outputs a modified version. This modified version is a logical equivalent to the original, version but consists of a different code. The less common code the generations share, the harder it’s to detect they relation (which is good).

In order to be able to compare different approaches we look into some methods of how to compare multiple generations of a metamorphic code engine. First of all the ngram similarity is explored, which basically just compared parts of each file sequentially and calculated a score. The more advanced method and probably the way to go is the opcode graph similarity, which spans up a probability graph for an executable file and utilized graph similarity calculation in order to get similarity score.

For each metamorphic code engines a sample set is generated and evaluated using the above described methods. The results are presented and discussed in this project.