![]()
内容推荐 本书为二进制安全技术知识普及与技术基础教程,不仅能为初学二进制安全技术的读者提供全面、实用的C语言反汇编知识,而且能有效培养读者的漏洞挖掘和软件逆向分析基础能力。本书配套示例源码、PPT课件、教学大纲、教案、习题答案、作者QQ群答疑。 本书共12章,内容包括二进制安全概述、基本数据类型、表达式、流程控制、函数、变量、数组和指针、结构体、C++反汇编、其他编程知识、二进制漏洞挖掘(PWN)、软件逆向分析。 本书适合二进制安全初学者和网络安全从业人员,也适合作为应用型本科与高职高专网络空间安全、信息安全类专业的教材。 作者简介 郑天明,周口师范学院计算机科学与技术学院讲师、教研室主任。拥有多年软件开发、渗透测试教学经验。著有图书《Web渗透测试技术》。 目录 第1章 二进制安全概述 1.1 汇编指令 1.1.1 寄存器 1.1.2 指令集 1.2 编译环境 1.2.1 x86环境 1.2.2 ARM环境 1.2.3 MIPS环境 1.3 常用工具 1.3.1 PE工具 1.3.2 OllyDbg工具 1.3.3 IDA Pro工具 1.4 本章小结 1.5 习题 第2章 基本数据类型 2.1 整数 2.1.1 无符号整数 2.1.2 有符号整数 2.2 浮点数 2.2.1 浮点指令 2.2.2 编码 2.3 字符和字符串 2.4 布尔型 2.5 指针 2.6 常量 2.7 案例 2.8 本章小结 2.9 习题 第3章 表达式 3.1 算术运算 3.1.1 四则运算 3.1.2 自增和自减 3.2 关系运算和逻辑运算 3.3 位运算 3.4 案例 3.5 本章小结 3.6 习题 第4章 流程控制 4.1 if语句 4.1.1 单分支 4.1.2 双分支 4.1.3 多分支 4.2 switch语句 4.3 while/for语句 4.3.1 while循环语句 4.3.2 for循环语句 4.4 案例 4.5 本章小结 4.6 习题 第5章 函数 5.1 函数栈 5.2 函数参数 5.3 函数调用类型 5.4 函数返回值 5.5 案例 5.6 本章小结 5.7 习题 第6章 变量 6.1 全局变量 6.2 静态变量 6.3 堆变量 6.4 案例 6.5 本章小结 6.6 习题 第7章 数组和指针 7.1 数组 7.1.1 数组作为参数 7.1.2 数组作为返回值 7.1.3 多维数组 7.2 指针 7.2.1 指针数组 7.2.2 数组指针 7.2.3 函数指针 7.3 案例 7.4 本章小结 7.5 习题 第8章 结构体 8.1 结构体变量内存分配 8.2 结构体对象作为函数参数 8.2.1 值传递 8.2.2 地址传递 8.3 结构体对象作为函数返回值 8.4 案例 8.5 本章小结 8.6 习题 第9章 C++反汇编 9.1 构造函数和析构函数 9.1.1 局部对象 9.1.2 全局对象 9.1.3 堆对象 9.1.4 参数对象 9.1.5 返回值对象 9.2 虚函数 9.3 继承与多态 9.4 本章小结 9.5 习题 第10章 其他编程知识 10.1 C语言常用功能 10.1.1 文件处理 10.1.2 多线程 10.1.3 网络 10.2 数据结构和算法 10.2.1 线性结构 10.2.2 树 10.2.3 排序算法 10.3 本章小结 第11章 二进制漏洞挖掘(PWN) 11.1 Linux安全机制 11.1.1 Stack Canaries 11.1.2 No-eXecute 11.1.3 ASLR 11.1.4 RELRO 11.2 pwntools 11.3 shellcode 11.3.1 编写shellcode 11.3.2 通过pwntools生成shellcode 11.3.3 使用其他方式获取shellcode 11.4 整数溢出 11.5 格式化字符串漏洞 11.5.1 数据泄露 11.5.2 数据写入 11.6 栈溢出与ROP 11.6.1 ret2text 11.6.2 ret2shellcode 11.6.3 ret2libc 11.7 堆溢出 11.7.1 堆基本数据结构 11.7.2 堆空闲管理结构 11.7.3 malloc基本流程 11.7.4 free基本流程 11.7.5 堆溢出漏洞 11.8 本章小结 第12章 软件逆向分析 12.1 文件格式 12.1.1 PE文件格式 12.1.2 ELF文件格式 12.2 加密算法识别 12.2.1 Base 12.2.2 MDS 12.2.3 TEA 12.2.4 DES 12.2.5 RC 12.2.6 算法识别 12.3 加壳与脱壳 12.3.1 基本概念 12.3.2 脱売方法 12.4 分析案例 12.4.1 CTF案例 12.4.2 CrackMe案例 12.4.3 病毒分析 12.5 本章小结 |