每个类型占用的内存空间是有限的,存储大于最大支持值/小于最小支持值的数据就称为整数溢出/整数下溢。整数溢出本身不会导致任何的代码执行,但可能会导致栈溢出或堆溢出,从而导致任意代码执行。
比如,在32位系统上,无符号整型数据的长度为4字节,占32bit表示的数的范围是0x00000000~0xffffffff,那么最大值0xffffffff+1将变成33bit的数,但内存空间只能容纳32位,将高于32位的部分舍弃,该无符号整数值将为0。
[注意]看雪招聘,专注安全领域的专业人才平台!