在 C 中的缓冲区中调用程序集

标签 c assembly buffer call

这可能吗?

我想将英特尔汇编代码放入一个字符缓冲区,然后从 C 程序中执行该代码

如果我将汇编代码放入缓冲区,我可以将它转换为函数指针并调用它吗?

我正在使用 GCC 和 linux

最佳答案

您想执行英特尔汇编代码还是机器代码?如果你想执行机器代码,那么是的,你可以,前提是字符缓冲区所在的内存页没有标记为 NX(不执行)。

如果你在谈论汇编代码,那么不,你首先需要通过汇编器运行代码(在 Un*x 系统上,标准汇编器通常称为 as;在 Linux 上,这应该与 gas) 相同,然后运行生成的机器代码。

关于在 C 中的缓冲区中调用程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592228/

相关文章:

c - 如何在Codeblocks中添加conio?

assembly - 有什么区别——MOV指令

java - 0x0A 和 0x0D 的区别

Emacs Lisp 打印输出

c++ - VS2015 中奇怪的 memcpy_s 行为

c++ - D3D10 常量缓冲区不工作

objective-c - 如何有效地将 C 库包装到 Swift 类中

c++ - 使用 librsvg 时出现编译错误

objective-c - 当我将 C 数组传递给 Objective-C 方法时,让该方法将数组复制到堆内存是否足够?

assembly - 加载引导加载程序的第二阶段