图书介绍
C和C++安全编码2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)RobertC.Seacord编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111261483
- 出版时间:2010
- 标注页数:227页
- 文件大小:25MB
- 文件页数:243页
- 主题词:C语言-程序设计
PDF下载
下载说明
C和C++安全编码PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 夹缝求生1
1.1 衡量危险3
1.1.1 损失的现状4
1.1.2 威胁的来源5
1.1.3 软件安全6
1.2 安全概念7
1.2.1 安全策略8
1.2.2 安全缺陷8
1.2.3 漏洞9
1.2.4 利用10
1.2.5 缓解措施10
1.3 C和C++11
1.3.1 C和C++简史11
1.3.2 C存在的问题12
1.3.3 遗留代码13
1.3.4 其他语言13
1.4 开发平台13
1.4.1 操作系统13
1.4.2 编译器15
1.5 本章小结16
1.6 阅读材料16
第2章 字符串17
2.1 字符串特征17
2.2 常见的字符串操作错误18
2.2.1 无界字符串复制18
2.2.2 差一错误20
2.2.3 空结尾错误21
2.2.4 字符串截断21
2.2.5 与函数无关的字符串错误21
2.3 字符串漏洞22
2.3.1 安全缺陷23
2.3.2 缓冲区溢出24
2.4 进程内存组织24
2.5 栈粉碎27
2.6 代码注入30
2.7 弧注入32
2.8 缓解策略34
2.8.1 预防34
2.8.2 字符串流44
2.8.3 检测和恢复45
2.9 著名的漏洞48
2.9.1 远程登录49
2.9.2 Kerberos49
2.9.3 Metamail49
2.10 本章小结50
2.11 阅读材料51
第3章 指针诡计52
3.1 数据位置52
3.2 函数指针53
3.3 数据指针54
3.4 修改指令指针54
3.5 全局偏移表56
3.6 .dtors区57
3.7 虚指针58
3.8 atexit()和on_exit()函数60
3.9 longjmp()函数61
3.10 异常处理62
3.10.1 结构化异常处理62
3.10.2 系统默认异常处理64
3.11 缓解策略65
3.11.1 W^X65
3.11.2 Canaries65
3.12 本章小结65
3.13 阅读材料66
第4章 动态内存管理67
4.1 动态内存管理67
4.2 常见的动态内存管理错误69
4.2.1 初始化69
4.2.2 检查返回值失败70
4.2.3 引用已释放的内存71
4.2.4 多次释放内存72
4.2.5 不匹配的内存管理函数73
4.2.6 未正确区分标量和数组73
4.2.7 对分配函数的不当使用73
4.3 Doug Lea的内存分配器74
4.3.1 内存管理74
4.3.2 缓冲区溢出76
4.3.3 双重释放漏洞80
4.3.4 写入已释放的内存83
4.4 RtlHeap83
4.4.1 Win32中的内存管理83
4.4.2 RtlHeap的数据结构85
4.4.3 缓冲区溢出88
4.4.4 缓冲区溢出(再回顾)89
4.4.5 写入已释放内存92
4.4.6 双重释放92
4.4.7 look-aside表95
4.5 缓解策略95
4.5.1 空指针95
4.5.2 一致的内存管理约定96
4.5.3 堆完整性检测96
4.5.4 phkmalloc97
4.5.5 随机化98
4.5.6 哨位页98
4.5.7 OpenBSD98
4.5.8 运行时分析工具99
4.5.9 Windows XP SP2100
4.6 著名的漏洞101
4.6.1 CVS缓冲区溢出漏洞102
4.6.2 微软数据访问组件(MDAC)102
4.6.3 CVS服务器双重释放漏洞103
4.6.4 MIT Kerberos 5中的漏洞103
4.7 本章小结103
4.8 阅读材料103
第5章 整数安全105
5.1 整数105
5.1.1 整数表示法106
5.1.2 整数类型106
5.1.3 整数取值范围108
5.2 整型转换109
5.2.1 整型提升109
5.2.2 整数转换级别109
5.2.3 从无符号整型转换111
5.2.4 从带符号整型转换112
5.2.5 带符号或无符号字符113
5.2.6 普通算术转换113
5.3 整数错误情形113
5.3.1 整数溢出114
5.3.2 符号错误115
5.3.3 截断错误115
5.4 整数操作116
5.4.1 加法117
5.4.2 减法119
5.4.3 乘法120
5.4.4 除法122
5.5 漏洞126
5.5.1 整数溢出126
5.5.2 符号错误127
5.5.3 截断错误128
5.6 非异常的整数逻辑错误129
5.7 缓解策略130
5.7.1 范围检查130
5.7.2 强类型131
5.7.3 编译器运行时检查131
5.7.4 安全的整数操作132
5.7.5 任意精度的算术136
5.7.6 测试137
5.7.7 源代码审查137
5.8 著名的漏洞137
5.8.1 XDR库137
5.8.2 Windows DirectX MIDI库128
5.8.3 bash138
5.9 本章小结139
5.10 阅读材料140
第6章 格式化输出141
6.1 变参函数142
6.1.1 ANSI C标准参数142
6.1.2 Unix System V Varargs144
6.2 格式化输出函数144
6.2.1 格式字符串145
6.2.2 GCC147
6.2.3 Visual C++.NET147
6.3 对格式化输出函数的漏洞利用148
6.3.1 缓冲区溢出148
6.3.2 输出流149
6.3.3 使程序崩溃149
6.3.4 查看栈内容150
6.3.5 查看内存内容151
6.3.6 覆写内存152
6.3.7 国际化156
6.4 栈随机化156
6.4.1 阻碍栈随机化156
6.4.2 以双字的格式写地址157
6.4.3 直接参数存取158
6.5 缓解策略160
6.5.1 静态内容的动态使用160
6.5.2 限制字节写入161
6.5.3 ISO/IEC TR 24731162
6.5.4 iostream与stdio162
6.5.5 测试163
6.5.6 编译器检查164
6.5.7 词法分析164
6.5.8 静态污点分析164
6.5.9 调整变参函数的实现165
6 5 10 Exec Shield166
6.5.11 FormatGuard166
6.5.12 Libsafe167
6.5.13 静态二进制分析167
6.6 著名的漏洞168
6.6.1 华盛顿大学FTP Daemon168
6.6.2 CDE ToolTalk168
6.7 本章小结169
6.8 阅读材料170
第7章 文件I/O171
7.1 并发171
7.1.1 竞争条件171
7.1.2 互斥和死锁172
7.2 检查时间和使用时间173
7.3 作为锁的文件和文件锁定174
7.4 文件系统利用176
7.4.1 符号链接利用176
7.4.2 临时文件打开利用178
7.4.3 unlink()竞争利用180
7.4.4 受信文件名180
7.4.5 非唯一的临时文件名181
7.5 缓解策略181
7.5.1 关闭竞争窗口182
7.5.2 消除竞争对象184
7.5.3 控制对竞争对象的访问187
7.5.4 竞争侦测工具188
7.6 本章小结189
第8章 推荐的实践190
8.1 安全的软件开发原则191
8.1.1 机制经济性原则192
8.1.2 失败-保险默认原则192
8.1.3 完全仲裁原则192
8.1.4 开放式设计原则192
8.1.5 特权分离原则192
8.1.6 最小特权原则193
8.1.7 最少公共机制原则193
8.1.8 心理可接受性原则194
8.2 系统质量需求工程194
8.3 威胁建模195
8.4 使用/误用案例196
8.5 架构与设计196
8.6 现成软件198
8.6.1 现有代码中的漏洞198
8.6.2 安全的包装器199
8.7 编译器检查199
8.8 输入验证200
8.9 数据净化201
8.9.1 黑名单201
8.9.2 白名单202
8.9.3 测试203
8.10 静态分析203
8.10.1 Fortify203
8.10.2 Prexis204
8.10.3 Prevent204
8.10.4 PREfix和PREfast205
8.11 质量保证205
8.11.1 渗透测试205
8.11.2 模糊测试206
8.11.3 代码审计206
8.11.4 开发人员准则与检查清单206
8.11.5 独立安全审查207
8.12 内存权限207
8.12.1 W^X207
8.12.2 PaX208
8.12.3 数据执行防护208
8.13 深层防御209
8.14 TSP-Secure209
8.14.1 计划和跟踪209
8.14.2 质量管理210
8.15 本章小结211
8.16 阅读材料211
参考文献212
缩略语223
热门推荐
- 621727.html
- 345536.html
- 1487506.html
- 2823051.html
- 2000420.html
- 602976.html
- 2421809.html
- 1660547.html
- 2190882.html
- 1722298.html
- http://www.ickdjs.cc/book_3771800.html
- http://www.ickdjs.cc/book_127597.html
- http://www.ickdjs.cc/book_237905.html
- http://www.ickdjs.cc/book_3137686.html
- http://www.ickdjs.cc/book_1416266.html
- http://www.ickdjs.cc/book_1082659.html
- http://www.ickdjs.cc/book_858044.html
- http://www.ickdjs.cc/book_2380869.html
- http://www.ickdjs.cc/book_2601729.html
- http://www.ickdjs.cc/book_3216502.html