这个 C 片段是什么意思?

What does this C snippet mean?

我是 shellcode 的新手,我正在尝试了解所有情况。我找到了许多代码来测试我在 C 中的 shellcode,但令我惊讶的是它们非常难以阅读,我也无法理解这段代码:

int (*func)();
func = (int (*)()) code;
(int)(*func)();

或者这个:

int (*ret)() = (int(*)())code;
ret();

这是否等同于 Javascript 中的 eval()?它是如何工作的?

int (*func)(); 是指向 returns 和 int.

的函数(在 C++ 中不带参数)的指针

(*func)();func(); 调用指向的函数。

(int (*)()) code; 是一个讨厌的类型转换,告诉编译器 code 指向这样一个函数。如果不是,但您仍然尝试调用该函数,则该程序无效并且可能发生任何事情。

"Anything" 包括实际执行 shell 代码,或崩溃,或其他。语言标准没说。