質問編集履歴
1
追記
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,
|