数据溢出
在计算机中,当要表示的数据超出计算机所用数据的表示范围时,就会发生数据溢出。
溢出原因
如果数据类型超过计算机字长的限制,将发生数据溢出。内存溢出的原因有很多,例如:
(1)使用非类型安全语言(如C/C)。
(2)以不可靠的方式访问或复制内存缓冲区。
(3)编译器设置的内存缓冲区太接近密钥数据结构。
因子分析
1。内存溢出是C语言或C语言固有的缺陷,它不能检查数组边界和类型安全。众所周知,C/C语言开发的目标代码非常接近机器内核,因此可以直接访问内存和寄存器。这一特性极大地提高了C/C语言代码的性能。只要编码合理,C/C应用程序的执行效率将优于其他高级语言。然而,C/C语言导致内存溢出的可能性要高得多。其他语言也有内存溢出的问题,但这不是程序员的错,而是应用程序的运行时环境。
2. 当应用程序读取用户(或恶意攻击者)的数据并试图将其复制到应用程序打开的内存缓冲区中,但无法保证缓冲区空间时(换句话说,假设代码应用了一个n字节的内存缓冲区,然后将多个n字节的数据复制到该缓冲区中)。内存缓冲区可能溢出。好好想想。如果你把16盎司的水倒进一个12盎司的杯子里,那么多出来的4盎司水呢?当然,它会充满了玻璃
!3. 最重要的是,C/C编译器打开的内存缓冲区通常与重要的数据结构相邻。假设函数堆栈紧跟在内存缓冲区之后,则存储函数的返回地址将与内存缓冲区相邻。此时,恶意攻击者可以将大量数据复制到内存缓冲区,使内存缓冲区溢出并覆盖原来存储在堆栈中的函数的返回地址。这样,函数的返回地址就会被攻击者指定的值替换;一旦调用函数,“函数返回地址”处的代码就会继续执行。不仅如此,C的其他一些数据结构,如v-table、异常处理程序、函数指针等,也可能受到类似的攻击。
1. 字节类型。它可以保存介于“0”和“255”之间的值。
2. 短号码类型。它可以保存“-32768”和“32767”之间的值,大小为2字节。
3. 整数类型。它可以保存“-2147483648”和“2147483648”之间的值,大小为4字节。
4. 长整数类型。它可以保存“-9.223.372.036.854.775.808”和“9.223.372.036.854.775.808”之间的值,大小为8字节。
5. 十进制类型。它可以保存3.4e/-38(7位小数)之间的值,大小为4字节。
6. 双精度十进制类型。它可以保存1.7e/-308(15位小数位)之间的值,大小为8字节。
7. 逻辑类型。值可以是true或false,大小为两个字节。“True和false是预定义的常量,它们对应的英语常量是True和false。8日期时间类型。用于记录日期和时间。大小为8字节。
9. 文本类型。它用来记录一段文字。文本由一系列以字节0结尾的字符组成。
10. 字节集。用于记录一段字节数据。字节集和字节数组可以相互转换。在程序中允许字节数组的地方也可以使用字节集。或者相反,字节数组的用法,如用括号引用字节成员,用数组类型的数值数据赋值等,都可以由字节集来使用。两者之间的唯一区别是字节集可以加长,因此可以将字节集视为自己的可变长度数组。
11. 子程序指针。用于指向大小为4字节的子例程。在上述基本数据类型中,字节型、短整数型、整数型、十进制型、双精度十进制型称为“数字型”,可以任意转换。然而,编程时需要注意转换可能造成的精度损失。例如,将整数257转换为字节的结果是1,因为值257超出了255字节数据的最大限制,从而导致溢出。查看变量可以使用的数据类型,然后双击定义的变量中的类型以查看所有支持的数据类型。
你觉得学习网页设计怎么样?网页设计是一门相对简单的学科。大致可分为两个步骤:1。艺术,整个画面的画面和布局首先要由一般艺术来设计。2. 每个网页的图片都是由DIV-CSS呈现的,所以首先要学习的是DIV-CSS,然后你就可以学习JS(这有点
报北大青鸟、达内这类的培训班怎么样?靠谱吗?在过去两年的经济衰退中,许多公司没有提高工资。然而,互联网产业发展迅速。作为一名程序员,他的月薪是一万多元。很多人想把自己的职业改成程序员,但是没有技术他们还能做什么呢?。现在有那么多培训学校,那
QQ邮箱里的压缩包文件下载下来是网页html文件,为什么?使用Safari打开,单击文件图标右下角的“打开”,然后选择要打开的其他应用程序。我在列表中看到了QQ邮箱,所以我用QQ邮箱给自己发了一封邮件,这样我就可以看到了。
现在网上写小说有哪些靠谱平台?谢谢!无论你去哪个网站——起点、纵横、榕树下、晋江、红秀天香、17k如果你想挣钱,你必须先和网站签订合同。以纵横中文网为例。合同签订后,将有作者担保、全勤奖、续展奖、完成奖等。作者的保证和全勤奖是可以理解的。他
学UI设计好,还是网页设计好?谢谢邀请!作为一名IT行业的从业者,同时也是一名计算机专业的教育工作者,我来回答一下这个问题。首先,目前UI设计和网页设计(前端开发)都是不错的选择,一方面这两个岗位的就业空间比较大,另一方面这两个岗位的发展空
如何实施高效的网络营销策略?如果实施高效的网络营销策略,这就应该“因人而异”来谈,不同的企业规模、不同的发展阶段、不同的目标,营销方案自然就不同。我还没有在大型企业做过。让我们把重点放在我认识的小企业、小个人甚至商业人员的营销策划上。首先,
如何快速备份磁盘分区?下载diskgenius,选择要备份的分区,如系统分区,您可以轻松地将系统压缩成一个相对较小的备份映像文件到任何磁盘分区或其他存储介质。(点击蓝色软件名下载)打开已安装软件的主程序,如下界面。选择系统分区,右击显示功能
简历模板去哪里下载?一、百度一下二、看其它回答三、动动脑子和小手,避免拿来主义四、简历干净整洁就好,别想整的多高大上,用不着五、基于以上,随便找一个差不多的模版就可,内容才是重点,其余的纯属浪费时间和精力。有哪些免费的高清图片素材网站推荐?
如何实施高效的网络营销策略?如果实施高效的网络营销策略,这就应该“因人而异”来谈,不同的企业规模、不同的发展阶段、不同的目标,营销方案自然就不同。我还没有在大型企业做过。让我们把重点放在我认识的小企业、小个人甚至商业人员的营销策划上。首先,
个人邮箱哪个域名后缀好,名字全拼163的被占用了?个人邮箱的域名很多,至于全名邮箱是否还存在,我们只能一一尝试。这个邮箱很好。谷歌产品,你可以用它轻松访问很多网站,使用谷歌服务时也很方便,比如Chrome浏览器:微软产品,也很强大。与神秘的