【发布时间】:2009-10-20 02:59:38
【问题描述】:
这可能吗?
我想将 intel 汇编代码放入 char 缓冲区,然后在 C 程序中执行该代码
如果我将汇编代码放入缓冲区,我可以将其转换为函数指针并调用它吗?
我正在使用 GCC 和 linux
【问题讨论】:
-
我想我要做的是将英特尔代码而不是机器代码放入缓冲区,所以我想这不会起作用。为了确保,我将诸如 pop %[register] push %[register] movl、addl 之类的东西放入 char 缓冲区并将其转换为函数指针?如果我确实设法在其中获取机器代码,我认为 mprotect() 会帮助我执行此操作
-
@Jamie,请用几句话解释你的意图。您是否打算创建缓冲区溢出漏洞?
-
英特尔汇编语言只是文本 - 不是可执行代码。您需要先组装它,然后才能运行它(您可以让编译器提供帮助 - 例如,请参阅 Visual Studio 中的 __asm { } 构造)。