- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
修改栈返回地址,改变程序执行流程
修改栈中函数调用返回地址,改变程序执行流程
任务:修改栈中函数调用返回地址,改变程序执行流程
在本例中,通过修改函数function调用返回地址,使程序跳过执行x=1的赋值语句,从而使输出结果为0
为了实现这个目标,需要
1.找到函数调用返回地址在栈中的位置
由于c程序中无法直接取得返回地址,本例中以buffer1地址为基址,通过计算其与返回地址在栈中地址的差值,得到返回地址(在栈中)的地址
对应程序中的7、8句
7 ret=buffer1+12;
8 (*ret)+=5;
buffer1和返回地址通过gdb调试得到
2 .计算所跳过指令与下一条指令的差值,这通过反汇编代码可以直接计算得出
源程序
1 i#includestdio.h
2 void function(int a,int b,int c)
3 {
4 char buffer1[5];
5 char buffer2[10];
6 int *ret;
7 ret=buffer1+12;
8 (*ret)+=5;
9
10 }
11 void main()
12 {
13 int x;
14 x=0;
15 function(1,2,3);
16 x=1;
17 printf(%d\n,x);
18 }
编译:gcc -o e -g e.c
调试:gdb e
反汇编 disassemble main
0x0804844e +0: push %ebp
0x0804844f +1: mov %esp,%ebp
0+3: and $0xfffffff0,%esp
0+6: sub $0x20,%esp
要跳过指令地址
0+9: movl $0x0,0x1c(%esp)
0x0804845f +17: movl $0x3,0x8(%esp)
0+25: movl $0x2,0x4(%esp)
0x0804846f +33: movl $0x1,(%esp)
0+40: call 0x8048414 function
0x0804847b +45: movl $0x1,0x1c(%esp)
0+53: mov $0x8048560,%eax
0+58: mov 0x1c(%esp),%edx
0x0804848c +62: mov %edx,0x4(%esp)
0+66: mov %eax,(%esp)
0+69: call 0x8048338 printf@plt
0+74: leave
0+75: ret
disassemble function:
0+0: push %ebp
Buffer1地址 !
0+1: mov %esp,%ebp
0+3: sub $0x28,%esp
0x0804841a +6: mov %gs:0x14,%eax
0+12: mov %eax,-0xc(%ebp)
0+15: xor %eax,%eax
0+17: lea -0x21(%ebp),%eax
0+20: add $0xc,%eax
0x0804842b +23: mov %eax,-0x1c(%ebp)
0x0804842e +26: mov -0x1c(%ebp),%eax
0+29: mov (%eax),%eax
0+31: lea 0x5(%eax),%edx
0+34: mov -0x1c(%ebp),%eax
0+37: mov %edx,(%eax)
0x0804843b +39: mov -0x
您可能关注的文档
- 2011年高考语文试题分类汇编论述类(科技类)文本阅读.doc
- 中国煤炭网监测监控.doc
- 2011广州年中考数学试卷3(含答案).doc
- 2011广州中考数学答案-向艳芳.doc
- 中国科学院上海硅酸盐研究所硕士生选课注意事项.doc
- 2011泰宁初中毕业班质量检测数学试题.doc
- 2011海淀区初三数学一模考试试题.doc
- 中国电机行业现状分析.docx
- 2011级(九上)数学半期试题.doc
- 2011级经济政治与社会期末试卷及答案标准版doc2.doc
- internal for instructor-lesson plans partner course讲师课程计划合作伙伴.pdf
- 通过销售给客户来报废资产fifa abad国际足联世纪.pdf
- 内省了解javabean加强.pdf
- 测试无线终端开发认证组技术战略telus要求范围独立发布vstandalone terminal specification.pdf
- 计算书西区信息.pdf
- 文案详解the pelican kragi鹈鹕岩.pdf
- 综合平行证明.pdf
- 23ase study电子商务概要.pdf
- 文稿课件c o m qlik sense成果.pdf
- jimmy choo ss15男士系列鞋履mens collection男装.pdf
文档评论(0)