




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告课程名称: 学 院: 姓 名: 班 级: 学 号: 年 月 日l 实验一:缓冲区溢出安全问题一:什么是缓冲区溢出:缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量而溢出;某些情况下,溢出的数据只是覆盖在一些不重要的的内存空间上,不会产生严重后果;但是一旦溢出的数据覆盖在合法数据上,可能会给系统带来巨大的危害。实验程序:运行调试缓冲区溢出p02_03.c,p02_04.c,p02_05.c,p02_06.c二:实验步骤:1:打开microsoft visual studio 6.0 选择microsoft visual c+file-new projects win32
2、console application(项目名称p0203)file-new-files - c+ source file编辑程序:#include#includevoid function(char *input)char buffer10;strcpy(buffer,input);printf(call fun1,buffer= %sn,buffer);int main(int argc,char *argv)function(argv1);return 0;build compile p0203.cpp- build p02.exe查找到工程所在地址例如d:p02.exe2:开始-运行-
3、cmd-输入d:(进入d盘)-输入cd p02debug(进入生成exe所在文件)输入“p02 security”会显示:输入“p02 abcdefghijklmnopqrstuvwxyz1234567890”弹出应用程序错误警示框,提示为3:将代码修改为:#include#includevoid fun1(char *input)char buffer10;strcpy(buffer,input);printf(call fun1,buffer= %sn,buffer);void fun2()printf(call fun2);int main(int argc,char *argv)pri
4、ntf(address of fun2= %pn,fun2);fun1(argv1);return 0;输入“p02 abcde”显示:输入“p02 abcdefghijklmnopqrstuvwxyz1234567890”弹出应用程序错误警示框,提示为4:代码修改为:#include#includevoid fun1(char *input)char buffer10;strcpy(buffer,input);printf(call fun1,buffer= %sn,buffer);void fun2()printf(call fun2);int main(int argc,char *ar
5、gv)printf(address of fun2= %pn,fun2);fun1(abcdefghijklmnopqrstuvwxyz12x05x10x40);return 0;直接调用程序,无法像书中所说可以调用fun2函数,因为找不到下一个buffer区的入口5:指令通用跳转地址为0x7ffa4512#include#includevoid fun1(char *input)char buffer10;strcpy(buffer,input);printf(call fun1,buffer=%sn,buffer);int main(int argc,char *argv)char buf
6、fer=abcdefghijklmnopqrstuvwxzy12x12x45xfax7fx55x8bxecx33xc0x50x50xc6x45xf4x4dxc6x45xf5x53xc6x45xf6x56xc6x45xf7x43xc6x45xf8x52xc6x45xf9x54xc6x45xfax2exc6x45xfbx44xc6x45xfcx4cxc6x45xfdx4cxbax77x1dx80x7cx52x8dx45xf4x50xffx55xf0x55x8bxecx83xecx2cxb8x63x6fx6dx6dx89x45xf4xb8x61x6ex64x2ex89x45xf8xb8x63x6fx
7、6dx22x89x45xfcx33xd2x88x55xffx8dx45xf4x50xb8xc7x93xbfx77xffxd0x83xc4x12x5d;fun1(buffer);return 0;运行程序,并不能像书中所说调出一个控制台命令窗口,因为实验室所装操作系统的缘故。理论上应该能行的通。l 实验二:整数溢出问题1:2:3:4:5:l 实验三:线程同步安全与协作安全问题1:2:注意:刷新控制台,会有多种结果输出:3:4:5:6:7:l 实验四:线程死锁与控制安全问题1:2:3:import java.awt.*;import java.awt.event.*;public class p0
8、312 extends frame implements actionlistener,runnableprivate button btn=new button(暂停);private thread th=new thread(this);public p0312()this.add(btn);this.pack();btn.addactionlistener(this);this.setvisible(true);th.start();public void run() while(true)system.out.println(welcome);trythread.sleep(1000)
9、;catch(exception e)public void actionperformed(actionevent e) if(btn.getlabel().equals(打印)th.resume();btn.setlabel(暂停);elseth.suspend();btn.setlabel(打印);public static void main(string args)new p0312();运行效果为:4:import java.awt.*;import java.awt.event.*;public class p0313 extends frame implements actio
10、nlistener,runnableprivate button btn=new button(暂停);private thread th=new thread(this);private boolean run=true;public p0313()this.add(btn);this.pack();btn.addactionlistener(this);this.setvisible(true);th.start();public void run() while(run)system.out.println(welcome);trythread.sleep(1000);catch(exc
11、eption e)public void actionperformed(actionevent e) if(btn.getlabel().equals(打印)th=new thread(this);this.run=true;th.start();btn.setlabel(暂停);elsethis.run=false;th=null;/ null不能为大写btn.setlabel(打印); public static void main(string args) new p0313();l 实验五:异常/错误处理中的安全问题1:try-catch-finally结构import java.i
12、o.*;/引进java处理io异常的包public class p0402 public static void main(string args) tryinputstreamreader isr=new inputstreamreader(system.in);bufferedreader br=new bufferedreader(isr);system.out.println(请您输入一个数字:);string str=br.readline();double numer=double.parsedouble(str);double result=numer*numer;system.
13、out.println(结果是:+result);catch(numberformatexception ex)system.out.println(对不起,您输入的格式错误!);catch(ioexception ex)system.out.println(对不起,io异常!);catch(exception ex)system.out.println(对不起,程序异常!);finallysystem.out.println(程序运行完毕!);输入12o,程序运行结果为:2:fianlly块import java.io.*;/引进java处理io异常的包public class p0403
14、public static void main(string args) tryinputstreamreader isr=new inputstreamreader(system.in);bufferedreader br=new bufferedreader(isr);system.out.println(请您输入一个数字:);string str=br.readline();double numer=double.parsedouble(str);double result=numer*numer;system.out.println(结果是:+result);catch(excepti
15、on ex)system.out.println(对不起,程序异常!);/无论捕获到什么异常,都会执行fianlly块finallysystem.out.println(程序运行完毕!); 此处将程序改为:import java.io.*;/引进java处理io异常的包public class p0404 public static void main(string args) tryinputstreamreader isr=new inputstreamreader(system.in);bufferedreader br=new bufferedreader(isr);system.out.println(请您输入一个数字:);string str=br.readline();double numer=double.parsedouble(str);double result=numer*numer;system.out.println(结果是:+result);catch(exception ex)system.out.println(对不起,程序异常!);/*与p0403相比,此处没有使用finally, * 但是finally的特点就是:在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 垃圾处理项目场地调研与咨询服务协议书
- 债务安全协议书范本
- 保障性住房拆迁补偿与购房协议书
- 工业土地转租协议书范本
- 餐饮企业加盟店特许经营合同范本
- 生物医药研发场房屋租赁及临床试验服务合同
- 珍稀茶具收藏与拍卖合同范本
- 草原生态环境补偿与治理承包合同
- 桥面坑槽冷再生修补技术专题
- 支原体肺炎的治疗
- 2025年河南省洛阳市中考一模历史试题(含答案)
- 2025年度专业技术人员继续教育公需科目考试题(附答案)
- 光学工程师试题及答案
- 苏州市公司员工2025年度劳动合同模板:劳动合同签订与员工考核评估
- 2025陕煤集团榆林化学有限责任公司招聘(300人)笔试参考题库附带答案详解
- 工程合作居间服务合同范本
- 中国金融AI行业市场调查研究及发展趋势预测报告
- 6.2平行四边形的判定第1课时(同步课件)-2023-2024学年八年级数学下册同步课堂(北师大版)
- 加强门诊服务管理
- 【MOOC】《算法设计与分析》(东北大学) 中国大学慕课答案
- 2025年度消防设施远程监控及报警服务合同3篇
评论
0/150
提交评论