gpt4 book ai didi

C:将预编译的代码块存储为 char[],然后执行它

转载 作者:行者123 更新时间:2023-11-30 17:10:01 25 4
gpt4 key购买 nike

我想知道是否可以将一大块已编译的代码存储为 char[],然后以某种方式执行它。

例如

unsigned char my_code[5] = {124,231,75,123,0};
asm("jal my_code");
  • 这可能吗?
  • 这个奇怪的东西有名字吗?有文章解释它吗?

谢谢

最佳答案

在标准 C 中,答案是不,代码不是数据

也就是说,如果 char 数组包含完整的可执行文件,您可以将其写入文件,然后执行该文件(例如使用 system())。如果它不是完整的可执行文件(只有几条指令),您会以某种方式将其变成完整的可执行文件。

在过去的美好时光,当编译器接受时,这更容易

char main[] = { 42, 68, 0xcb, 0xdd, 0, 4, 74, 59 }; /* not a real program */

并创建了一个可执行程序:-)

关于C:将预编译的代码块存储为 char[],然后执行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33057927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com