这个C代码段是什么意思?

这个C代码段是什么意思?,c,function-pointers,shellcode,C,Function Pointers,Shellcode,我是个壳码高手,我想了解所有的情况。我已经找到了很多代码来测试我在C中的外壳代码,但令我惊讶的是,这些代码非常不可读,我也无法理解这两个代码: int (*func)(); func = (int (*)()) code; (int)(*func)(); 或者这个: int (*ret)() = (int(*)())code; ret(); 这是否等同于Javascript中的eval()?它是如何工作的是指向函数的指针(在C++中不带参数),该函数返回一个int (*func)()或只是f

我是个壳码高手,我想了解所有的情况。我已经找到了很多代码来测试我在C中的外壳代码,但令我惊讶的是,这些代码非常不可读,我也无法理解这两个代码:

int (*func)();
func = (int (*)()) code;
(int)(*func)();
或者这个:

int (*ret)() = (int(*)())code;
ret();
这是否等同于Javascript中的
eval()
?它是如何工作的是指向函数的指针(在C++中不带参数),该函数返回一个
int

(*func)()或只是
func()调用指向的函数

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


“任何事情”包括实际执行shell代码、崩溃或其他事情。语言标准没有说。

这是函数pTeNo.OP,你能确认你是否想问C和C++,或者只是C?(我从编辑历史中看到,有人没有明确地提到C++),我的原因是因为我不确定这个片段是C还是C++,用户纠正了我的错误。