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

質問編集履歴

1

追記

2017/05/13 15:45

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -50,4 +50,44 @@
50
50
  %pを連続的にならべてprintf()を行っているのですが、なんかスタック領域のアドレスを見ているというより、何のアドレス群なのか分からなくなってきてしまったのですが・・・
51
51
 
52
52
  どなたか教えてください。
53
- Linux 64bit です。
53
+ Linux 64bit です。
54
+
55
+
56
+ 「追記」
57
+ ```C
58
+ #include<stdio.h>
59
+ #include<string.h>
60
+ #include<stdlib.h>
61
+
62
+ int main(int argc, char* argv[]){
63
+ int i;
64
+ int x[20];
65
+ char text[1024];
66
+ strcpy(text, argv[1]);
67
+
68
+ for(i = 0; i < 20; i++)
69
+ x[i] = i;
70
+
71
+ printf(text);
72
+ printf("\n%p, %p, %p, %p, %p, %p\n", &i, &x[0], &x[1], &x[2], &x[3], &x[4]);
73
+ return 0;
74
+ }
75
+
76
+ ```
77
+ ```ここに言語を入力
78
+ ./stack_overflow %x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x > stack_overflow.txt
79
+
80
+ cat stack_overflow.txt
81
+
82
+ b055bae0,13,252c7825,18f5c840,b4ebda50,b055b138,b055ac78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,252c7825,2c78252c,78252c78,b50cfd58,1,0,1,b50d29d8,0,5e400000,0,b50d34c0,b055ad50,18f5c391,b50d29d8,b055ad40,b4eae740,3de00ec7,ffffffff,b4b2f7f0,b4b16b98,b50cf4c0,b4b10000,398020,b055af20,b4c2f6e5,0,0,0,b056d1d8,0,0,0,b4eaea20,b50d29d8,b4eb7124,7,8,b50d3700,b056d1a8,b056d298
83
+ 0x7ffcb055b04c, 0x7ffcb055aff0, 0x7ffcb055aff4, 0x7ffcb055aff8, 0x7ffcb055affc, 0x7ffcb055b000
84
+
85
+ ```
86
+ となったときに、
87
+ おそらく、b055bae0,13,252c7825,18f5c840,b4ebda50,b055b138,b055ac78
88
+ の部分に int i ~ int x[5] の値が含まれているはずです。
89
+ それがどれなのかをみつけたいのです。
90
+
91
+ ちなみに、大部分は以下のようなコードがが占めています。
92
+ printf "\x25\x78\x2c\n"
93
+ %x,