整数溢出实例与防范.pptxVIP

  • 6
  • 0
  • 约1.5千字
  • 约 11页
  • 2016-08-25 发布于河南
  • 举报
整数溢出实例与防范

整数溢出 ——实例与防范 Q1:什么是整数溢出? ③整数溢出将导致“不确定性行为”。比如完全 忽略该溢出或终止进程。大多数编译器都会忽略 这种溢出,这可能会导致不确定或错误的值保存 在了整数变量中。 ①计算机中整数都有一个宽度(例如win7下VC6编译器中int类型为32位)。 ②当试图保存一个比它可以表示的最大值还大的数时,就会发生整数溢出。 常见整型的表示范围: 一般超出范围会进行“回环操作”, 就像时钟一样。我们在VC6环境下 测试a+b(a和b均为无符号短整型): Q2:整数溢出的危害有哪些? ①导致无法预知的程序错误,甚至很难测试出程序的这个BUG。 e.g. int m1, m2, m_max; cin m1 m2 m_max; if (m1 + m2 max) cout “m1+m2大” endl; else cout “m1+m2小” endl; Q2:整数溢出的危害有哪些? ②如果作为数组下标使用,溢出时会导致无法预知的结果。 e.g. char p[10000]; int n; scanf(“%d”, n); if (n 10000) p[n] = ‘a’; ……… Q3:整数溢出漏洞如何利用? 整数溢出不同于一般的常见的bug,它不允许直接改写内存或直接控制程序流程,但它更难以捕获。在某些特殊的情况下,可以

文档评论(0)

1亿VIP精品文档

相关文档