星期一, 十二月 31, 2007

printf的常见格式字符

printf的常见格式字符


格式字符 含义

%c 单字符格式
%d 十进制整型
%e 指数形式
%f 十进制浮点数
%l 整型
%o 八进制整型
%p 地址指针
%s 字符串
%x 十六进制整型
%n 将已经输出的字节数保存到相应指针指向的内存地址中

在格式字符的中间加上一个整数,printf函数就会把这个数值作为输出宽度。
如果输出的实际宽度大于指定宽度,则仍然按照实际宽度输出;如果小于指定宽度,则按指定宽度输出。

有漏洞的printf语句可以将任意数值写到任意地方,这就是漏洞的根源,只要将main的返回地址改为攻击

代码,控制权就会跳转到攻击代码而造成恶意的攻击。

没有评论: