首页 > 解决方案 > 如何从堆中执行代码

问题描述

如何将执行重定向到堆上的代码?操作系统:64位Linux

我尝试的是设置rip我的数组,但我无法编译它。我的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int len = 0;
    char *t;
    int chr;
    printf("Input code length: ");
    scanf("%d", &len);
    t = (char*)malloc(len+1);
    for (int i = 0; i < len; ++i) {
        scanf("%x", &chr);
        t[i] = chr;
    }
    t[len] = 0;
    asm("movl %%rip, [%0]" : "=g"(t));
}

标签: clinuxassemblycpu-registers

解决方案


推荐阅读