c++ - 为什么符号扩展错误具有很高的安全风险?

标签 c++ c

<分区>

谁能解释一下为什么任何 c、c++ 程序中的符号扩展错误都具有很高的安全风险?

我读过,符号扩展错误 “通常会造成缓冲区溢出和其他基于内存的问题”。

我在 Google 上阅读了这篇文章,

http://minsky.gsi.dit.upm.es/semanticwiki/index.php/Sign_extension_error

但无法理解这对任何应用程序有何影响,攻击者如何利用此类漏洞?

提前致谢

最佳答案

一个很好的例子是使用 char 作为表的索引。 C 中的 char 类型可以签名,因此任何字符代码 > 0x7F 都将扩展为表中的负索引。这相当于缓冲区溢出攻击。 C 将 unsigned char 作为默认值会更好。

关于c++ - 为什么符号扩展错误具有很高的安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218875/

相关文章:

c - 为什么当我将堆对象传递给函数时不需要释放它们?

Visual Studio 2017 中的 c scanf_s 不能多次工作

c++ - 更改指针指向的位置,同时保持其他两个指针的值

c++ - 多个显示器上的 SetConsoleWindowInfo

c++ - C++ 11-修改结构 vector 中的结构成员

c++ - 套接字 API :Socket operation on non-socket

C - 使用 -Wall 编译不会警告未初始化的变量

c++ - 忽略转义序列 C++

c++ - 来自 QFrame 的 Qt 气球窗口

c - 保留的 TCP/IP 端口