复制代码
1
2
3int ss[100]={0,1,2,3,4,5,6,7,8,9}; sizeof(ss); strlen(ss);
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82复制代码80483ec: sub $0x1b0,%esp 80483f2: lea 0x20(%esp),%ebx 80483f6: mov $0x0,%eax 80483fb: mov $0x64,%edx 8048400: mov %ebx,%edi 8048402: mov %edx,%ecx 8048404: rep stos %eax,%es:(%edi);重复stos操作,将eax值(0x0)拷贝到ES:EDI指向的地址 8048406: movl $0x1,0x24(%esp) ;重复次数ECX(0x84) 804840e: movl $0x2,0x28(%esp);初始化前10个整数,可以看出偏移量为4字节 8048416: movl $0x3,0x2c(%esp) 804841e: movl $0x4,0x30(%esp) 8048426: movl $0x5,0x34(%esp) 804842e: movl $0x6,0x38(%esp) 8048436: movl $0x7,0x3c(%esp) 804843e: movl $0x8,0x40(%esp) 8048446: movl $0x9,0x44(%esp) 804844e: mov $0x8048580,%eax 8048453: movl $0x190,0x4(%esp) ;0x190作为下面call的参数,十进制即为400 804845b: mov %eax,(%esp) 804845e: call 8048300 <printf@plt> 8048463: lea 0x20(%esp),%eax 8048467: movl $0xffffffff,0x1c(%esp) 804846e: ff 804846f: mov %eax,%edx 8048471: mov $0x0,%eax ;ah、al值都为0 8048476: mov 0x1c(%esp),%ecx 804847a: mov %edx,%edi 804847c: repnz scas %es:(%edi),%al ;扫描[es:edi]指向的一系列字节数据(此处为数组),扫描长度 804847e: mov %ecx,%eax ;由ecx指定,遇到与al中的数据相等时停止扫描。此处为0x0 8048480: not %eax 8048482: lea -0x1(%eax),%edx 8048485: mov $0x804858b,%eax 804848a: mov %edx,0x4(%esp) ;edx值即为call的参数 804848e: mov %eax,(%esp) 8048491: call 8048300 <printf@plt>;调用printf输出结果 8048496: mov $0x0,%eax 804849b: lea -0x8(%ebp),%esp 804849e: pop %ebx 804849f: pop %edi 80484a0: pop %ebp
复制代码复制代码
最后
以上就是激昂飞鸟最近收集整理的关于无标题的全部内容,更多相关无标题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复