#一、背景
- 在Linux内核的代码中,大部分以C内联汇编编写。
- 在编写病毒时,也会常常用到,比如,要编写一个不依赖libc的注入代码时,需要调用mmap进行内存申请时,就要使用到syscall进行系统调用。这时就需要使用到C语言的内联汇编。
static inline volatile int evil_open(const char *path, unsigned long flags)
{
long ret;
__asm__ volatile(
"mov %0, %%rdi\n"
"mov %1, %%rsi\n"
"mov $2, %%rax\n"
"syscall" : : "g"(path), "g"(flags));
asm ("mov %%rax, %0" : "=r"