实验一使用Purify 对代码进行安全性测试.PDFVIP

  • 13
  • 0
  • 约5.17千字
  • 约 11页
  • 2017-06-18 发布于天津
  • 举报

实验一使用Purify 对代码进行安全性测试.PDF

实验一使用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. 错误提示:

文档评论(0)

1亿VIP精品文档

相关文档