セキュリティ関連の本で,以下のようなプログラムがでてきました。main関数の中にある((void()())shellcode)();が分かりません。本には静的領域のシェルコードを無理やり実行するもの,とありますが文法的なものが全く分かりません。
コード #include <stdio.h> #include <string.h> char *shellcode = "\x48\x31\xd2\x52\x48\xb8\x2f\x62\x69\x6e\x2f\x70\x77\x64\ x50\x48\x89\xe7\x52\x57\x48\x89\xe6\x48\x8d\x42\x3b\x0f\x05"; int main(void){ fprintf(stdout,"Length: %d\n",strlen(shellcode)); (*(void(*)())shellcode)(); return 0; }
回答2件
あなたの回答
tips
プレビュー