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

質問編集履歴

4

追記

2019/12/10 10:21

投稿

kazuyakazuya
kazuyakazuya

スコア193

title CHANGED
File without changes
body CHANGED
@@ -4,13 +4,25 @@
4
4
  ```c
5
5
  #include <stdio.h>
6
6
 
7
+ int sub();
8
+
7
9
  int main(void){
10
+ sub();
11
+ return 0;
12
+ }
13
+
14
+ int sub(){
8
15
  char moji[15];
16
+ scanf("%s\n",moji);
9
17
  int * p;
18
+ int *subp;
19
+ subp = main;
20
+ printf("This is main ReturnAddress: %p\n",subp);
10
- scanf("%s\n",moji);
21
+ printf("%d\n",sizeof(subp));
22
+ int *p;
11
- p = (int *)moji;
23
+ p = (int*)moji;
12
- int count;
24
+ int ebpofs;
13
- for(count=-32;count<80;count++){
25
+ for(ebpofs=-32;ebpofs<80;ebpofs++){
14
26
  printf("addr%p price:%x",p + count,p[count]);
15
27
  }
16
28
  return 0;

3

追記

2019/12/10 10:21

投稿

kazuyakazuya
kazuyakazuya

スコア193

title CHANGED
File without changes
body CHANGED
@@ -35,4 +35,7 @@
35
35
  CentOSではできないようでもなっているのでしょうか?
36
36
  分からないのでお願いします。
37
37
  ![イメージ説明](911e6c812618bb27f7ab248e6e06f784.png)
38
- ![イメージ説明](8751c449be0900293932375f7a093bae.png)
38
+ ![イメージ説明](8751c449be0900293932375f7a093bae.png)
39
+ sub関数逆アセンブル
40
+ ![イメージ説明](f3270cf963d884a718b11d9a21f0b85f.png)
41
+ ![イメージ説明](739ed9191f08e630acbf0dbaf55e9398.png)

2

追記

2019/12/10 09:48

投稿

kazuyakazuya
kazuyakazuya

スコア193

title CHANGED
File without changes
body CHANGED
@@ -33,4 +33,6 @@
33
33
  なぜでしょうか?
34
34
  ホストのwindows上ではechoコマンドを使ってバッファを溢れさせることができたのですが・・・
35
35
  CentOSではできないようでもなっているのでしょうか?
36
- 分からないのでお願いします。
36
+ 分からないのでお願いします。
37
+ ![イメージ説明](911e6c812618bb27f7ab248e6e06f784.png)
38
+ ![イメージ説明](8751c449be0900293932375f7a093bae.png)

1

訂正

2019/12/10 04:43

投稿

kazuyakazuya
kazuyakazuya

スコア193

title CHANGED
File without changes
body CHANGED
@@ -7,11 +7,11 @@
7
7
  int main(void){
8
8
  char moji[15];
9
9
  int * p;
10
- scanf("%s",moji);
10
+ scanf("%s\n",moji);
11
11
  p = (int *)moji;
12
12
  int count;
13
- for(count=-16;count<64;count++){
13
+ for(count=-32;count<80;count++){
14
- printf("%p:%x",p + count,p[count]);
14
+ printf("addr%p price:%x",p + count,p[count]);
15
15
  }
16
16
  return 0;
17
17
  }