缓冲区溢出--格式化字符串漏洞.pdf

缓冲区溢出--格式化字符串漏洞

缓冲区溢出 --格式化字符串漏洞 程绍银 sycheng@ 软件安全与测试 本章内容 格式化字符串漏洞 插曲:特权提升漏洞演示 缓冲区溢出攻击的防范 软件安全与测试 2 格式化函数 #include stdio.h int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int sprintf(char *str, const char *format, ...); int snprintf(char *str, size_t size, const char *format, ...); 软件安全与测试 3 格式化函数 #include stdarg.h int vprintf(const char *format, va_list ap); int vfprintf(FILE *stream, const char *format, va_list ap); int vsprintf(char *str, const char *format, va_list ap); int vsnprintf(char *str, size_t size, const char *format, va_list ap); 另外还有: setproctitle, syslog, err*, verr*, warn*, vwarn*等 软件安全与测试 4 VA_LIST 宏 VA_LIST 是在C语言中解决变参问题的一组宏,所 在头文件:#include stdarg.h,用于获取不确定个 数的参数 va_list ap; //声明一个变量来转换参数列表 va_start(ap,fmt); //初始化变量 va_arg(ap,type); //取出参数 va_end(ap); //结束变量列表,和va_start成对使用 软件安全与测试 5 格式化字符串:const char *format Format 参数是包含三种对象类型的字符串 无格式字符复制到输出流 转换规范,每个规范导致在值参数列表中检索 1 个或更多个项 转义序列 通常意义上format的格式如下: %[flags][width][.prec][F|N|h|l]type 软件安全与测试 6 %[flags][width][.prec][F|N|h|l]type type 用于规定输出数据的类型 软件安全与测试 7 %[flags][width][.prec][F|N|h|l]type 软件安全与测试

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档