mov eax , cr0
or eax , 0x01
mov cr0 , eax



back to months list

Project : Research on Multi-platform System Call Table

Journal Entry Date : 2024.06.10

Because of me drenching the laptop with water I was not able to touch this project. And because we had to take some photos for the yearbook I didn't have enough time to do anything technical.

Instead, I just had a time of organizing & setting the goals of this overall project and following thesis I will be writing with what I so far have.

Here is the big overview of what I have to do :

  1. Platform Detection : Detecting what platform, what system call table, what system call specification should be used
  2. System Call Table Translation : Switching the system call table by corresponding binary loader
  3. System Call Argument Translation : Dealing the arguments from the user system call for different platforms
  4. Supportation for Various System Call Method : Supporting various system call methods by different platforms

1. Platform Detection

Detecting the platform is done by the binary handler in Linux kernel. Later the binary handler is linked with the corresponding system call table.

2. System Call Table Translation

The system call tables are stored in the pools of system call tables, each linked with the corresponding binary handler. When a new task is created from the executables of the binary handler, the system call table pointer in the TCB of the task is set to the corresponding system call table from the system call table pool.

3. System Call Argument

We need an interface function that determines what register does what. We especially need an interface function that selects what register acts as the indicator of system call number. We also need to consider the way of passing the arguments from the register sets.

4. Supporting various system call methods

A straightforward problem. We just need to register all the methods of system call of the platforms. Register x80 interrupt as system call handler for example.

(1) and (2) are completely done, so my primary goal from now is to implement (3).

I have to synthesize a thesis paper from this stuff. Wow.