Code transformation methods between Assembly and Three-address code

2016-2017 tavasz

Téma leírása

In computer science, three-address code (often abbreviated to TAC) is an intermediate code used by optimizing compilers to aid in the implementation of code-improving transformations. Each TAC instruction has at most three operands and is typically a combination of assignment and a binary operator. The name derives from the use of three operands in these statements even though instructions with fewer operands may occur.

Another usage of TAC is an intermediate level obfuscation. The aim of the research that takes place at the Department of Automation and Applied Informatics, is to work out an intermediate level obfuscator, which does not require the presence of source code and does not rely on non-documented features of a host platform.

A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture. Generally this refers to either machine code or assembly language.

The tasks to be fulfilled at the Project scope are the following:

  • insight into low-level programming on the example of x86 MASM instruction set;
  • development of methods of assembly code analysis;
  • ASM -> TAC and TAC -> ASM transformations based on the existing framework;
  • examination of code injection methods.

Feltételek

  • érdeklődés a téma iránt
  • angol nyelv
  • programozásbeli jártasság (C#)
  • alacsony szintű programozási technikák ismerete

Maximális létszám: 2 fő

Konzulens

Dunaev Dmitriy fényképe

Dunaev Dmitriy
Tudományos segédmunkatárs

QB.229
+36 (1) 463-4225