整数溢出漏洞小结

有无符号数是CPU架构决定的,是硬件特性直接反映到汇编指令中。C语言忠实的展现了汇编的特性。

无符号数比较:

ja、jae、jb、jbe、je或jne

小于、小于等于、等于、不等于、大于或大于等于;

有符号数比较:

则使用jl、jle、je、jne、jg、jge指令

小于、小于等于、等于、不等于、大于或大于等于;

无符号:十六进制表示

有符号:补码表示

无符号与有符号转换:

基本原则:保证底层的位模式保持不变

导致的问题:有符号数赋给无符号数之后,会从-1变成4294967295(导致溢出)

(0xffffffff)  无符号数赋给有符号数之后,会从4294967295变成-1(可能没有危害)

有符号溢出:

基本原则:视为十六进制形式做运算,再按有符号数解释

上溢:0x7fffffff               2147483647-->-2147483648

下溢:0x80000000        -2147483648—>2147483647

无符号溢出:

基本原则:视为十六进制形式做运算

上溢:0xffffffff               4294967295—>0

下溢:0x00000000        0—>4294967295

整数溢出的恶果:

无符号上溢,导致分配的缓冲区过小

无符号下溢,导致拷贝数据过多

时间: 2024-10-09 05:03:52

整数溢出漏洞小结的相关文章

PHP “shmop_read()”远程整数溢出漏洞

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中. PHP的"shmop_read()"函数在实现上存在远程整数溢出漏洞,远程攻击者可利用此漏洞在受影响网络服务器中执行任意代码,造成拒绝服务. 解决方法 前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://www.php.net/downloads.php 原文地址:https://www.cnblogs.com/mrhonest/p/10892552.html

Linux kernel 4.20 BPF 整数溢出漏洞分析

分析的代码为linux-4.20-rc3版本:https://elixir.bootlin.com/linux/v4.20-rc3/source.因为该漏洞影响`Linux Kernel 4.20rc1-4.20rc4`,主要Linux发行版并不受其影响. 一.简介 BPF的全称是Berkeley Packet Filter,字面意思意味着它是从包过滤而来,该模块主要就是用于用户态定义数据包过滤方法:从本质上我们可以把它看作是一种内核代码注入的技术,BPF最大的好处是它提供了一种在不修改内核代码

BEC合约整数溢出漏洞还原与分析

一.币圈一秒,人间一年 有道是币圈一日,人间一年.这个说法又得升级了,叫币圈一秒,人间一年. 前不久,币圈又出大事啦.BEC智能合约被爆出整数溢出漏洞,导致黑客能无限印币,在一次交易中,也就那么几秒钟的事情,黑客就“无中生有”地给两个账户转了天文数字般的BEC币,而原账户一分BEC币都没损失.大家来围观下这笔交易: https://etherscan.io/tx/0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f

Java运行时环境JPEGImageWriter.writeImage函数整数溢出漏洞_

在使用PDFBOX的接口,代码如下: PDFImageWriter imageWriter = new PDFImageWriter(); imageWriter.writeImage(pdDoc, imageType, null, startPage, endPage, imageFilePath, 1, Constants.NUM_TWO_HUNDRED),发现图片生成了,但是报内存溢出错误.后面看了下源代码搜寻相关资料发现存在这样一个问题,所以更换JDK就OK了. Java运行时环境的JP

CVE-2015-1530 ,CVE-2015-1474 两个android整数溢出漏洞 分析

An integer overflow in Android media could be exploited to get media_server permission(CVE-2015-1530) Integer overflow leading to heap corruption while unflattening GraphicBuffer In Android(CVE-2015-1474)

缓冲区溢出分析第11课:整数溢出的原理

<缓冲区溢出分析>这一系列的内容是我为"i春秋"(www.ichunqiu.com)所录制的同名视频课程的讲稿汇总.每次我都是在写完课程的文档后,再依据文档内容进行课程的讲解.而本系列的内容也是从零开始,来给大家由浅入深地进行缓冲区溢出漏洞的讲解.整个课程是理论与实践相结合,每讲完几个基础理论后,都会配以实际的软件中的漏洞进行分析,以帮助大家更好地理解漏洞的原理.有兴趣的朋友可以结合本文与配套视频进行学习. 前言 我们之前所研究的漏洞,都是非常经典的栈溢出漏洞,也是最为常见

整数溢出实验

视频链接:  课程编写 类别 内容 实验课题名称 整数溢出实验 实验目的与要求 了解整数及整数溢出的基本概念 了解整数溢出的常见类型 掌握整数溢出的基本原理 通过编写代码,体验整数溢出 实验环境 VPC1(虚拟PC) Windows XP操作系统 软件描述 命令行窗口 实验代码 预备知识 1.整数及整数溢出 关于整数的概念,应该说我们在上中学的时候就学过了.这里我们需要了解的是:整数分为无符号和有符号两类,其中有负符号整数最高位为 1,正整数最高位为 0,无符号整数无此限制:此外,常见的整数类型

暂停交易?ERC20合约整数溢出安全漏洞案例技术分析(一)

区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地 作者:吴寿鹤,<区块链开发实战--以太坊关键技术与案例分析>的第一作者,<区块链开发实战--Hyperledger Fabric关键技术与案例分析>联合作者,IONChain 离子链 首席架构师,hyperLedger核心项目开发人员,区块链技术社区-区块链兄弟联合创始人.github: https://github.com/gcc2ge 来源:区块链兄弟,国内第一家专注区块链技术分享实战的公益性媒体社区 原文链

数据库缓冲区溢出漏洞原理(栈)

背景 在数据库系统中已经发现了许多安全漏洞,其中比较严重且危害性比较大的有:缓冲区溢出和SQL注入2种. SQL注入主要依赖于结构化查询语言,每种数据库略有出入:SQL注入漏洞的利用,最主要的威胁是提权:后台维护人员或黑客攻击,可以借此获得DBA权限.需要说明的是,这里所说的SQL注入并不是应用系统的SQL注入,而是数据库自身的注入漏洞,这种漏洞比应用系统的注入漏洞危险性更高:对于SQL注入漏洞的存在,主要是由于数据库中提供的系统或用户函数存在的参数检查不严和语句执行的缺陷.SQL注入漏洞不是本