我今天在一些 fb 个人资料中看到了这段代码,但无法理解它是什么以及它是如何工作的:-
(*(void(*)()) shellcode)()
有人可以解释一下,上面的代码是什么意思?
下面的完整代码片段:-
#include <stdio.h>
#include <string.h>
char *shellcode = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69"
"\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80";
int main(void)
{
fprintf(stdout,"Length: %d\n",strlen(shellcode));
(*(void(*)()) shellcode)();
return 0;
}