- 13
- 0
- 约5.17千字
- 约 11页
- 2017-06-18 发布于天津
- 举报
实验一使用Purify 对代码进行安全性测试
实验一 使用Purify 对代码进行安全性测试
本实验主要是以PurifyPlus 自带的两个Samples,来讲述用Purify 简单地测
试代码使用内存的情况的基本过程,主要练习Purify 的基本操作。
Purify 是IBM Rational PurifyPlus 中的一个组件,其作用是用来检测内存访
问错误和内存泄露等问题,其可以支持的语言有 C 、C++、Java 、Ada ,可以处
理的类型有Windows DLL 、MFC DLL 、VC\VB 构件、IE\Netscape\office 构件、
Excel\Word 插件、基于COM 的OLE 或ActiveX 构件等。
一、 启动Purify
首先选择 开始菜单-所有程序-IBM Rational-IBM Rational
PurifyPlus- Purify 。图1 中显示了Rational Purify 的启动窗口。
图1: Purify 的启动窗口
图2 : Purify 启动
1
在图1 中选择Run ,出现图2 的窗口,对于托管代码,使用选项Memory
profiling data 。对于非托管代码,使用选项Error and leak data 。
在执行应用程序的过程中,PurifyPlus 将依附在进程上。
二、 实例一,hello.exe
1. 代码内容:
RationalPurifyPlus 的安装目录\PurifyPlus\Samples\Purify 下有一个
hello.exe,其对应的代码是同目录下的hello.c,它的内容如下所示:
#include windows.h
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,int nCmdShow) {
int i, length;
char *string1 = Hello, Windows; char *string2 = malloc(10);
length = strlen(string2); // UMR string2 未初始化
for (i = 0; string1[i] != \0; i++) {
string2[i] = string1[i]; // ABWs generated on this line.
}
length = strlen(string2); // ABR generated on this line.
MessageBox(NULL, Hello, Windows, The Windows Hello
Dialog,
MB_OK | MB_ICONINFORMATION);
return 0;
}
从上面的这段代码可以看出,代码中存在几处涉及内存泄露和非法内
存读写的错误。
本实例就是测试这个hello.c 生成的hello.exe ,检查其中关于内存泄露的安
全隐患。
2. 开始测试hello.exe
在图2 的窗口中选择Run 后会出现图3 的界面,此时表明hello.exe 这个程
序已经在运行了,而且也已经有一些错误信息被检测出来了。
2
图3 :运行hello.exe
继续运行,点击确定,hello.exe 运行完毕并退出,这时Purify 会归纳一些找
到的内存错误。
图4 :运行hello.exe-续
3. 错误提示:
您可能关注的文档
最近下载
- 部编版语文五年级下册第一单元教材解读大单元集体备课.pptx VIP
- 车工 (数控车床)理论知识考核要素细目表四级.pdf VIP
- 本科课程《基础护理学》教案,第十二章给药.doc VIP
- 农村题材小品剧本村官.pdf VIP
- 小品剧本-小品《绰号》.docx VIP
- 小品剧本-小品《竞选》.docx VIP
- 本科课程基础护理学教给药教案(2025—2026学年).docx VIP
- LaserjetCP1025系列打印机打印质量故障排除手册.pdf VIP
- 年会小品剧本小品剧本:搞笑小品剧本《都是喝酒惹事》台词大全.docx VIP
- 2026年高考全国II卷文科综合真题试卷(新课标卷)(+答案).docx VIP
原创力文档

文档评论(0)