侧边栏

逆向之整数溢出漏洞

逆向之整数溢出漏洞

溢出漏洞的简介

  • 溢出漏洞的概念:

  溢出是黑客利用程序的漏洞,专门开发的一种程序,加相应的参数运行后,就可以达到某种目的。溢出是程序设计者设计时的不足所带来的错误

  • 溢出的类型:

  溢出分为缓冲区溢出、 内存溢出、数据溢出等

整数的概念

  • 整数的分类:

  在计算机中,整数分为无符号整数以及有符号整数两种

  • 数据在计算机中的存储方式:

  数据在计算机中的存储方式都是二进制序列的形式,比如整数“10”在计算机中就是以二进制序列“1010”进行存储的。

  • 常见的整数类型:

  常见的整数类型有8bit(单字节字符、布尔类型) 16bit(短整型) 32bit(长整型)等。

整数溢出

  • 整数溢出定义:

  计算机中整数都有一个宽度,即可以表示的最大值。当试图保存一个比它可以表示的最大值还大的数时,就会发生整数溢出。
  例如,将一个32bit的int类型数据存放在一个8bit的char类型变量里就会发生整数溢出现象整数溢出有的时候不会造成太大的影响,但也有可能导致极为严重的后果

  • 整数溢出危害:

  ISOC99标准规定整数溢出将导致“不确定性行为”,意即遵循标准的编译器可以做它们想做的任何事,比如完全忽略该溢出或终止进程。大多数编译器都会忽略这种溢出,这可能会导致不确定或错误的值保存在了整数变量中。

避免溢出的方法

  • 尽早释放无用对象的引用
  • 程序进行字符串处理时,尽量避免使用String,而应使用StringBuffer。
  • 尽量少用静态变量。
  • 避免集中创建对象尤其是大对象,如果可以的话尽量使用流操作

代码

posted @ 2021-04-26 11:50  菜鸟-传奇  阅读(496)  评论(0编辑  收藏  举报