概述:
前面的文章介绍了基础的栈溢出,其实还有进阶的栈溢出,但是我累了,进阶的栈溢出留着以后写。先来学习整数安全。整数安全漏洞在ctf中还是很常见的,但是整数安全漏洞并不能直接getshell,通常配合栈溢出或堆溢出来利用。
计算机中的整数分为有符号整数和无符号整数两种,通常保存在一个固定长度的内存空间中,他能存储的最大值和最小值都是固定的。
整数的基本数据类型分为短整型 (short),整型 (int),长整型 (long),这三个数据类型还分为有符号和无符号,每种数据类型都有各自的大小范围,(因为数据类型的大小范围是编译器决定的,所以之后所述都默认是 64 位下使用 gcc-5.4),如下所示:
关于整数的异常情况主要有三种:
- 溢出:只有有符号数才会发生溢出。有符号数的最高位表示符号,在两正或两负相加时,有可能改变符号位的值,产生溢出。溢出标志OF可检测有符号数的溢出。