相关疑难解决方法(0)

如何利用Format-String漏洞?

我正在阅读代码中的漏洞,并遇到了这个Format-String漏洞.

维基百科说:

当程序员希望打印包含用户提供的数据的字符串时,最常出现格式化字符串错误.程序员可能会错误地写printf(缓冲区)而不是printf("%s",缓冲区).第一个版本将缓冲区解释为格式字符串,并解析它可能包含的任何格式化指令.第二个版本只是按照程序员的意图将字符串打印到屏幕上.

我遇到了printf(缓冲区)版本的问题,但我仍然没有得到攻击者如何使用此漏洞来执行有害代码.有人可以告诉我一个例子如何利用这个漏洞?

c security format-string

64
推荐指数
3
解决办法
7万
查看次数

printf如何发出编译器警告?

我想知道函数如何发出编译时警告?

我想到了这一点,因为当我们在printf(scanf)的第一个参数中为与该类型说明符匹配的变量提供错误的格式说明符并使用带有-Wall选项的gcc进行编译时,编译器会发出警告.

现在,printf和scanf定期实现可变参数函数,据我所知,我不知道在编译时检查字符串值的任何方法,更不用说在某些内容不匹配时发出警告.

有人能解释我如何获得编译器警告吗?

c printf gcc scanf

10
推荐指数
2
解决办法
1283
查看次数

"不得使用输入/输出库<stdio.h>."

我正在阅读JSF AV C++编码标准,规则22说:

AV规则22(MISRA规则124,修订)

<stdio.h> 不应使用输入/输出库.

有没有理由不使用<stdio.h>

我知道这些规则适用于C++,我们可以使用<iostream>......但是有什么问题<stdio.h>

c++ coding-style

1
推荐指数
2
解决办法
1941
查看次数

标签 统计

c ×2

c++ ×1

coding-style ×1

format-string ×1

gcc ×1

printf ×1

scanf ×1

security ×1