相关疑难解决方法(0)

如何获取c代码来执行十六进制字节码?

我想要一个简单的C方法,以便能够在Linux 64位机器上运行十六进制字节码.这是我的C程序:

char code[] = "\x48\x31\xc0";
#include <stdio.h>
int main(int argc, char **argv)
{
        int (*func) ();
        func = (int (*)()) code;
        (int)(*func)();
        printf("%s\n","DONE");
}
Run Code Online (Sandbox Code Playgroud)

我试图运行的代码("\x48\x31\xc0")我通过编写这个简单的汇编程序获得(它不应该真的做任何事情)

.text
.globl _start
_start:
        xorq %rax, %rax
Run Code Online (Sandbox Code Playgroud)

然后编译并objdump它以获取字节码.

但是,当我运行我的C程序时,我得到了一个分段错误.有任何想法吗?

c x86 assembly x86-64 shellcode

9
推荐指数
4
解决办法
1万
查看次数

标签 统计

assembly ×1

c ×1

shellcode ×1

x86 ×1

x86-64 ×1