質問編集履歴
1
途中送信してしまったので修正
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
|
-
ここにより詳細な情報を記載してください。
|