前提・実現したいこと
C言語からシェルを実行するためのコードを勉強中です。(セキュリティ関連なので、シェルコードです。)
C言語の知識は一通り学んだのですが、唐突に出てきた((void()()) hoge)();というコードの部分が理解できず困っております。(関数ポインタでしょうか?)
このコードを実行すると、確かに希望通りの動作をするのですが、((void()()) hoge)();の部分がなぜ動くのか、自分の力では理解できなかったので、teratailの人々に質問した次第です。
該当のソースコード
C
1char *hoge="\x48\x31....."; //シェルコード 2 3int main(){ 4 (*(void(*)()) hoge)(); 5 return 0; 6 7}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/13 09:58