質問編集履歴

1

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

2019/03/11 21:26

投稿

jaguarundi
jaguarundi

スコア19

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,12 @@
5
5
  C言語からシェルを実行するためのコードを勉強中です。(セキュリティ関連なので、シェルコードです。)
6
6
 
7
7
 
8
+
9
+ C言語の知識は一通り学んだのですが、唐突に出てきた(*(void(*)()) hoge)();というコードの部分が理解できず困っております。(関数ポインタでしょうか?)
10
+
11
+
12
+
13
+ このコードを実行すると、確かに希望通りの動作をするのですが、(*(void(*)()) hoge)();の部分がなぜ動くのか、自分の力では理解できなかったので、teratailの人々に質問した次第です。
8
14
 
9
15
 
10
16
 
@@ -22,26 +28,10 @@
22
28
 
23
29
  (*(void(*)()) hoge)();
24
30
 
25
- return 0;
31
+ return 0;
26
32
 
27
33
 
28
34
 
29
35
  }
30
36
 
31
37
  ```
32
-
33
-
34
-
35
- ### 試したこと
36
-
37
-
38
-
39
- ここに問題に対して試したことを記載してください。
40
-
41
-
42
-
43
- ### 補足情報(FW/ツールのバージョンなど)
44
-
45
-
46
-
47
- ここにより詳細な情報を記載してください。