《捉虫日记》由克莱恩所著,《捉虫日记》从实践角度介绍安全漏洞,描述了作者在过去几年里怎样发现漏洞、怎样利用漏洞来攻击以及开发商如何修复,旨在为开发人员提醒,为漏洞研究领域的工作人员提供工作思路。
目 录
第1章 捉虫 1
1.1 兴趣还是利益 2
1.2 通用技巧 2
1.2.1 个人技术偏好 2
1.2.2 代码中潜在的漏洞 3
1.2.3 模糊测试 3
1.2.4 延伸阅读 3
1.3 内存错误 4
1.4 专用工具 4
1.4.1 调试器 4
1.4.2 反汇编工具 5
1.5 EIP = 41414141 5
1.6 结束语 6
第2章 回到90年代 7
2.1 发现漏洞 8
2.1.1 第一步:生成VLC中解复用器的清单 8
2.1.2 第二步:识别输入数据 8
2.1.3 第三步:跟踪输入数据 9
2.2 漏洞利用 11
2.2.1 第一步:找一个TiVo格式的样例电影文件 11
2.2.2 第二步:找一条代码路径执行到漏洞代码 11
2.2.3 第三步:修改这个TiVo电影文件,使VLC崩溃 14
2.2.4 第四步:修改这个TiVo电影文件,控制EIP 15
2.3 漏洞修正 16
2.4 经验和教训 20
2.5 补充 21
第3章 突破区域限制 24
3.1 发现漏洞 24
3.1.1 第一步:列出内核的IOCTL 25
3.1.2 第二步:识别输入数据 26
3.1.3 第三步:跟踪输入数据 27
3.2 漏洞利用 34
3.2.1 第一步:触发这个空指针解引用,实现拒绝服务 34
3.2.2 第二步:利用零页内存控制EIP/RIP 38
3.3 漏洞修正 47
3.4 经验和教训 48
3.5 补充 48
第4章 空指针万岁 50
4.1 发现漏洞 50
4.1.1 第一步:列出FFmpeg的解复用器 51
4.1.2 第二步:识别输入数据 51
4.1.3 第三步:跟踪输入数据 52
4.2 漏洞利用 55
4.2.1 第一步:找一个带有有效strk块的4X样例电影文件 55
4.2.2 第二步:了解这个strk块的布局 55
4.2.3 第三步:修改这个strk块以使 FFmpeg崩溃 57
4.2.4 第四步:修改这个strk块以控制EIP 60
4.3 漏洞修正 65
4.4 经验和教训 68
4.5 补充 68
第5章 浏览即遭劫持 70
5.1 探寻漏洞 70
5.1.1 第一步:列出WebEx注册的对象和导出方法 71
5.1.2 第二步:在浏览器中测试导出方法 73
5.1.3 第三步:找到二进制文件中的对象方法 74
5.1.4 第四步:找到用户控制的输入数值 76
5.1.5 第五步:逆向工程这个对象方法 78
5.2 漏洞利用 81
5.3 漏洞修正 83
5.4 经验和教训 83
5.5 补充 83
第6章 一个内核统治一切 85
6.1 发现漏洞 85
6.1.1 第一步:为内核调试准备一个VMware客户机 86
6.1.2 第二步:生成一个avast!创建的驱动和设备对象列表 86
6.1.3 第三步:检查设备的安全设置 87
6.1.4 第四步:列出IOCTL 89
6.1.5 第五步:找出用户控制的输入数据 94
6.1.6 第六步:逆向工程IOCTL处理程序 97
6.2 漏洞利用 101
6.3 漏洞修正 107
6.4 经验和教训 107
6.5 补充 108
第7章 比4.4BSD还老的BUG 110
7.1 发现漏洞 110
7.1.1 第一步:列出内核的IOCTL 111
7.1.2 第二步:识别输入数据 111
7.1.3 第三步:跟踪输入数据 113
7.2 漏洞利用 116
7.2.1 第一步:触发这个bug使系统崩溃(拒绝服务) 116
7.2.2 第二步:准备一个内核调试的环境 118
7.2.3 第三步:连接调试器和目标系统 118
7.2.4 第四步:控制EIP 120
7.3 漏洞修正 125
7.4 经验和教训 126
7.5 补充 126
第8章 铃音大屠杀 129
8.1 发现漏洞 129
8.1.1 第一步:研究iPhone的音频性能 130
8.1.2 第二步:创建一个简单的模糊测试程序对这个手机进行模糊
测试 130
8.2 崩溃分析及利用 136
8.3 漏洞修正 142
8.4 经验和教训 143
8.5 补充 143
附录A 捉虫提示 145
附录B 调试 158
附录C 缓解技术 170
《JavaTCP/IPSocket编程(原书第2版)》基于TCP/IPSocket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。《Java...
《学霸教你的高效学习法》内容简介:比勤奋更重要的是方法,好的学习方法可以事半功倍,实现提分,让成绩更上一个台阶。本书是清华
《智慧工厂技术与应用》内容简介:智慧工厂是现代工厂信息化发展的新阶段,是在数字化工厂的基础上,利用物联网技术和设备监控技术
《JAVA核心技术卷2:高级特征》是Java技术权威指南,全面覆盖Java技术的高级主题,包括流与文件、XML、网络、数据库编程、高级Swi
本书主要讲解如何将集成开发环境、设计模式、极限编程、测试驱动开发、重构、持续集成这些现代编程方法应用到C语言的嵌入式开发中
《新安旅行团》内容简介:1935年10月10日,在陶行知先生的热切鼓励下,在校长汪达之的带领下,新安小学的学生组成了一个革命团体—
《智慧社会》内容简介:●如果要在大数据领域推举出一个代表性的科学家,阿莱克斯·彭特兰是一个无法令人忽略的名字。经过数年极具
《蜂鸟摄影学院新手学摄影(旅行篇)》内容简介:本书是蜂鸟网根据摄影初学者的要求和实际学习情况特意编写的一套学习教程中的旅行
《自然语言处理实战》内容简介:本书将从一个心理模型开始告诉读者计算机是如何阅读和解释语言的;之后,读者将了解如何训练基于Py
IanG.Clifton是西雅图A.R.O.的用户体验负责人,并且领导着Android开发团队,在那里,他开发了Saga——一种了解你的Android和iOS应
《语文课超有趣:部编本语文教材同步学(五年级·下册)》内容简介:从小学到初中,每个年级、每一篇课文都配有若干拓展阅读的文章
《解析彩虹》内容简介:全球极具影响力的科学家、当代知名进化论生物学家 《自私的基因》作者理查德•道金斯首部科普作品 写给所有人
《人才画像:让招聘准确率倍增》内容简介:在本书中,我们将咨询项目中常用的素质做成“素质菜单”,针对素质项的所有提问给出“精
为什么要看英国设计?什么是又能赚钱又有创意的设计?英国创意讽刺、好笑、富有喻意,又能引发情感,在造形上具有强烈的个人风格
MichaelMorrison与电脑世界结下不解之缘的开端,就是他的第一台个人电脑TI-99/4A,配件包括至高无上的人体工程学键盘、黑白TV“显
《马克思恩格斯法律思想研究》内容简介:本书分为上、下两编。上篇以马克思、恩格斯的重要著作文本为线索,梳理马克思和恩格斯运用
1作者为德国红点设计大奖得主。2书中独有作者自创的图形创作模式,即“理性—直觉—手—电脑”的结合运用。3本书包含40种颠覆惯性
《基于流体力学的金属增材制造过程仿真研究(英文版第二版)》内容简介:本书针对金属增材制造加工过程进行了系统研究,基于计算流
《寻找语文王国(基础知识篇)》内容简介:爱听故事是孩子的天性。《寻找语文王国》以“万里路”和“万卷书”兄妹俩寻找“语文王国
操作系统导论 本书特色 这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘...