整数安全

1
scanf("%[^\n]", buffer);

%[^\n]格式符用于从输入流中读取一行字符串,直到遇到换行符为止
换行符本身不会被读取,而是留在输入缓冲区中

1
void *memcpy(void *dest, const void *src, size_t n);

dest:目标内存地址(指向要写入数据的内存块)
src:源内存地址(指向要复制的数据块)
n:要复制的字节数


整数溢出:

  • 两个长度不同的整数之间进行赋值,长赋短,会发生溢出 信息发生改变
  • 有符号数转无符号数 类型转换 信息发生改变

我觉得不如说是类型溢出

基于C语言不同类型间的转换与操作出现的信息改变 进而导致攻击者可以利用代码书写者没有注意到的信息转换点进行控制、攻击程序


1
int atoi(const char *str);

将数字字符转化为数字

  • 它会跳过字符串开头的空白字符(如空格、制表符等),然后读取尽可能多的数字字符,直到遇到非数字字符或字符串结束。
    返回值
  • 返回转换后的整数值。
  • 如果字符串无法转换为整数(例如,字符串不包含有效的数字),atoi 返回 0。


在这里会产生整数溢出


整数安全
http://example.com/2025/03/31/整数安全/
作者
yvyvSunlight
发布于
2025年3月31日
许可协议