首页
论坛
课程
CTF
CTF竞赛
题库
看雪峰会
企服
招聘
发现
众测
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
论坛
课程
招聘
发现
企服
专栏
CTF
众测
排行榜
知识库
工具下载
看雪峰会
看雪20年
看雪商城
证书查询
专栏首页
漏洞攻防研究
文章详情
整数溢出漏洞小结
Ox9A82
2016-09-04 23:19
21113
有无符号数是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
整数溢出的恶果:
无符号上溢,导致分配的缓冲区过小
无符号下溢,导致拷贝数据过多
分享
分享到微信
分享到QQ
分享到微博
声明:该文观点仅代表作者本人,转载请注明来自看雪专栏
最新评论
(
0
)
登录后即可评论
漏洞攻防研究
创建者:
Ox9A82
关注二进制漏洞攻防前沿,顺带部分CTF内容,希望可以和大家交流
196
关注数
119
文章数
关注
该专栏热门文章
1
IDA Pro的patch插件 KeyPatch
本来这个是没什么可写的,但是安这个插件的时候真是气到爆炸,安装文档写的不明不白,几万行的代码都写了就差那么点时间写个几十字的详细说明吗? 1.下载keypatch.py放到\IDA\plugins里https://github.com/keystone-eng...
2
WinAFL
winafl 标签(空格分隔): fuzz 构成 afl-fuzz.c 主模块 读取文件 维护testcase queue 进行mutate fuzz_one 评估代码覆盖率 执行遗传算法 更新界面 show_stats winafl.c 注入dll 循环调用...
3
Smashing The Browser:From Vulnerability Discovery To Exploit学习记录
浏览器Fuzz技术 漏洞挖掘 白盒挖掘 代码审计 自动化代码分析 黑盒挖掘 Fuzzing 两种Fuzzing技术 静态Fuzzing 基于变异的 文件、文档 多媒体 bf3 基于生成的 浏览器 重点是测试用例的生成 动态Fuzzing Fuzzing框架...
4
Chakra GC内存管理(未完)
这一部分是我在网上找Chakra资料的时候偶然发现的zenhumany师傅在Hitcon2015上的议题《Microsoft Edge MemGC Internals》,感觉正好可以了解一下chakra的底层机制。但是只有一个PPT理解起来比较费力,这里的内容...
5
Chakra TypedArray代码实现笔记
ArrayBuffer.cpp阅读 对象继承关系 JavascriptArrayBuffer: ArrayBuffer: ArrayBufferBase: DynamicObject: RecyclableObject: FinalizableObject t...
6
CVE-2016-7201学习分析
CVE-2016-7201学习分析 漏洞POC参考自holynop师傅的文章 POCvar intarr = new Array(1, 2, 3, 4, 5, 6, 7) var arr = new Array("123","456") a...