質問するログイン新規登録

質問編集履歴

1

途中送信してしまったので修正

2019/03/11 21:26

投稿

jaguarundi
jaguarundi

スコア19

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,10 @@
2
2
 
3
3
  C言語からシェルを実行するためのコードを勉強中です。(セキュリティ関連なので、シェルコードです。)
4
4
 
5
+ C言語の知識は一通り学んだのですが、唐突に出てきた(*(void(*)()) hoge)();というコードの部分が理解できず困っております。(関数ポインタでしょうか?)
5
6
 
7
+ このコードを実行すると、確かに希望通りの動作をするのですが、(*(void(*)()) hoge)();の部分がなぜ動くのか、自分の力では理解できなかったので、teratailの人々に質問した次第です。
8
+
6
9
  ### 該当のソースコード
7
10
 
8
11
  ```C
@@ -10,15 +13,7 @@
10
13
 
11
14
  int main(){
12
15
  (*(void(*)()) hoge)();
13
- return 0;
16
+ return 0;
14
17
 
15
18
  }
16
- ```
19
+ ```
17
-
18
- ### 試したこと
19
-
20
- ここに問題に対して試したことを記載してください。
21
-
22
- ### 補足情報(FW/ツールのバージョンなど)
23
-
24
- ここにより詳細な情報を記載してください。