书籍详情
逆向分析实战(第2版)
作者:冀云
出版社:人民邮电出版社
出版时间:2022-09-01
ISBN:9787115590701
定价:¥99.80
购买这本书可以去
内容简介
黑客编程和逆向分析是计算机安全从业者需要掌握的两项基本功,随着各大企业对安全技术的日益重视,工程师在这方面的学习需求也在持续增长。本书共11章,既包括黑客编程的内容,如数据的存储及表示形式、汇编语言入门;又包括逆向分析的知识,如熟悉调试工具OD、PE工具详解、PE文件格式实例(包括加壳与脱壳工具的使用)、十六进制编辑器与反编译工具、IDA与逆向、逆向工具的原理及实现、安卓逆向分析。此外,本书还介绍了计算机安全的新技术,如DEX文件格式解析和Dalvik指令解析等。本书既可以作为网络编程人员、安全技术研究人员和安全技术爱好者的参考书,又可以作为大专院校计算机相关专业的教学用书或相关培训机构的教材。
作者简介
冀云,安全技术工程师,热爱分享,擅长安全技术。《C 黑客编程揭秘与防范》作者。
目录
目录
第 1章 数据的存储及表示形式 1
1.1 进制及进制的转换 1
1.1.1 现实生活中的进制与计算机中的二进制 1
1.1.2 进制的定义 2
1.1.3 进制的转换 2
1.2 数据宽度、字节序和ASCII 4
1.2.1 数据的宽度 4
1.2.2 数值的表示范围 4
1.2.3 字节序 5
1.2.4 ASCII 6
1.3 在OllyDbg中查看数据 6
1.4 编程判断主机字节序 11
1.4.1 字节序相关函数 11
1.4.2 编程判断主机字节序 11
1.5 总结 12
第 2章 汇编语言入门 13
2.1 x86汇编语言介绍 13
2.1.1 寄存器 13
2.1.2 在OD中认识寄存器 17
2.2 常用汇编指令集 19
2.2.1 指令介绍 19
2.2.2 常用指令介绍 20
2.3 寻址方式 35
2.4 总结 36
第3章 熟悉调试工具OD 37
3.1 认识OD调试环境 37
3.1.1 启动调试 37
3.1.2 熟悉OD窗口 39
3.2 OD中的断点及跟踪功能 44
3.2.1 OD中设置断点的方法 44
3.2.2 OD中跟踪代码的方法 50
3.3 OD中的查找功能和编辑功能 51
3.3.1 OD中的查找功能 51
3.3.2 OD中的修改和保存功能 52
3.4 OD中的插件功能 53
3.4.1 OD的常用插件介绍 53
3.4.2 OD插件脚本编写 55
3.4.3 OD插件的开发 56
3.5 总结 61
第4章 PE工具详解 62
4.1 常用PE工具介绍 62
4.1.1 PE工具 62
4.1.2 Stud_PE工具 63
4.1.3 PEiD工具 64
4.1.4 LordPE工具 64
4.2 PE文件格式详解 65
4.2.1 PE文件格式概述 66
4.2.2 详解PE文件格式 68
4.2.3 PE文件格式的3种地址 82
4.3 数据目录相关结构详解 88
4.3.1 导入表 88
4.3.2 导出表 101
4.3.3 重定位表 107
4.4 总结 115
第5章 PE文件格式实例 116
5.1 手写PE文件 116
5.1.1 手写PE文件的准备工作 116
5.1.2 用十六进制字节完成PE文件 117
5.2 手动压缩PE文件 129
5.2.1 修改压缩节区 129
5.2.2 节表合并 132
5.2.3 结构重叠 137
5.3 PE文件格式相关工具 145
5.3.1 增加节区 145
5.3.2 资源编辑 146
5.4 加壳与脱壳工具 151
5.4.1 什么是壳 151
5.4.2 简单壳的原理 151
5.4.3 加壳工具与脱壳工具的使用 162
5.5 PE32 简介 175
5.5.1 文件头 175
5.5.2 可选头 175
5.6 总结 177
第6章 十六进制编辑器与反编译工具 178
6.1 C32Asm 178
6.1.1 文件的打开方式 178
6.1.2 反汇编模式 180
6.1.3 十六进制模式 184
6.2 WinHex 188
6.2.1 内存搜索功能 188
6.2.2 使用模板解析数据 191
6.2.3 完成一个简单的模板 193
6.3 其他十六进制编辑器 194
6.3.1 UltraEdit简介 195
6.3.2 010 Editor简介 195
6.4 反编译工具介绍 196
6.4.1 DeDe反编译工具 197
6.4.2 VB反编译工具 200
6.4.3 .NET反编译工具 202
6.4.4 Java反编译工具 204
6.5 总结 205
第7章 IDA与逆向 206
7.1 IDA工具介绍 206
7.1.1 IDA的启动与关闭 206
7.1.2 IDA常用界面介绍 209
7.1.3 IDA的脚本功能 221
7.2 C语言代码逆向基础 224
7.2.1 函数的识别 224
7.2.2 if…else…结构分析 234
7.2.3 switch…case…default结构分析 237
7.2.4 循环结构分析 239
7.3 总结 243
第8章 逆向工具的原理及实现 244
8.1 PE工具的开发 244
8.1.1 GetProcAddress函数的使用 244
8.1.2 GetProcAddress函数的实现 245
8.2 调试工具的开发 249
8.2.1 常见的3种断点 249
8.2.2 调试API函数及相关结构体 253
8.2.3 打造一个密码显示器 263
8.3 总结 267
第9章 安卓逆向分析 268
9.1 安卓开发环境的搭建 268
9.1.1 JDK的安装 268
9.1.2 Android Studio的安装 269
9.1.3 Android虚拟设备的创建 270
9.2 创建第 一个Android App 272
9.2.1 创建一个HelloWorld程序 273
9.2.2 Android项目结构简介 275
9.2.3 为Android程序添加简单的功能 275
9.3 简单逆向安卓程序 280
9.3.1 Android Killer工具 280
9.3.2 修改app-release文件 281
9.4 Android Studio调试Smali代码 285
9.4.1 Smalidea插件的安装 285
9.4.2 调试Smali代码 286
9.5 Android App其他逆向工具简介 288
9.5.1 JEB工具 289
9.5.2 jadx工具 291
9.5.3 Android逆向助手 292
9.6 总结 293
第 10章 DEX文件格式解析 294
10.1 DEX文件解析 294
10.1.1 准备一个待解析的DEX文件 294
10.1.2 DEX文件格式详解 297
10.2 实现DEX文件格式解析工具 324
10.2.1 解析工具所需的结构体 324
10.2.2 解析DEX文件 325
10.3 小结 341
第 11章 Dalvik指令解析 342
11.1 Smali文件结构 342
11.1.1 文件结构 342
11.1.2 数据类型 345
11.1.3 函数定义 346
11.2 Smali指令介绍 346
11.2.1 Smali格式介绍 346
11.2.2 常用指令分类 348
11.2.3 代码阅读 350
11.3 完成DEX文件格式最后部分的解析 355
11.3.1 DexCode结构体的回顾 355
11.3.2 字节码转Smali指令 356
11.3.3 反汇编功能的实现 360
11.4 总结 371
参考文献 372
第 1章 数据的存储及表示形式 1
1.1 进制及进制的转换 1
1.1.1 现实生活中的进制与计算机中的二进制 1
1.1.2 进制的定义 2
1.1.3 进制的转换 2
1.2 数据宽度、字节序和ASCII 4
1.2.1 数据的宽度 4
1.2.2 数值的表示范围 4
1.2.3 字节序 5
1.2.4 ASCII 6
1.3 在OllyDbg中查看数据 6
1.4 编程判断主机字节序 11
1.4.1 字节序相关函数 11
1.4.2 编程判断主机字节序 11
1.5 总结 12
第 2章 汇编语言入门 13
2.1 x86汇编语言介绍 13
2.1.1 寄存器 13
2.1.2 在OD中认识寄存器 17
2.2 常用汇编指令集 19
2.2.1 指令介绍 19
2.2.2 常用指令介绍 20
2.3 寻址方式 35
2.4 总结 36
第3章 熟悉调试工具OD 37
3.1 认识OD调试环境 37
3.1.1 启动调试 37
3.1.2 熟悉OD窗口 39
3.2 OD中的断点及跟踪功能 44
3.2.1 OD中设置断点的方法 44
3.2.2 OD中跟踪代码的方法 50
3.3 OD中的查找功能和编辑功能 51
3.3.1 OD中的查找功能 51
3.3.2 OD中的修改和保存功能 52
3.4 OD中的插件功能 53
3.4.1 OD的常用插件介绍 53
3.4.2 OD插件脚本编写 55
3.4.3 OD插件的开发 56
3.5 总结 61
第4章 PE工具详解 62
4.1 常用PE工具介绍 62
4.1.1 PE工具 62
4.1.2 Stud_PE工具 63
4.1.3 PEiD工具 64
4.1.4 LordPE工具 64
4.2 PE文件格式详解 65
4.2.1 PE文件格式概述 66
4.2.2 详解PE文件格式 68
4.2.3 PE文件格式的3种地址 82
4.3 数据目录相关结构详解 88
4.3.1 导入表 88
4.3.2 导出表 101
4.3.3 重定位表 107
4.4 总结 115
第5章 PE文件格式实例 116
5.1 手写PE文件 116
5.1.1 手写PE文件的准备工作 116
5.1.2 用十六进制字节完成PE文件 117
5.2 手动压缩PE文件 129
5.2.1 修改压缩节区 129
5.2.2 节表合并 132
5.2.3 结构重叠 137
5.3 PE文件格式相关工具 145
5.3.1 增加节区 145
5.3.2 资源编辑 146
5.4 加壳与脱壳工具 151
5.4.1 什么是壳 151
5.4.2 简单壳的原理 151
5.4.3 加壳工具与脱壳工具的使用 162
5.5 PE32 简介 175
5.5.1 文件头 175
5.5.2 可选头 175
5.6 总结 177
第6章 十六进制编辑器与反编译工具 178
6.1 C32Asm 178
6.1.1 文件的打开方式 178
6.1.2 反汇编模式 180
6.1.3 十六进制模式 184
6.2 WinHex 188
6.2.1 内存搜索功能 188
6.2.2 使用模板解析数据 191
6.2.3 完成一个简单的模板 193
6.3 其他十六进制编辑器 194
6.3.1 UltraEdit简介 195
6.3.2 010 Editor简介 195
6.4 反编译工具介绍 196
6.4.1 DeDe反编译工具 197
6.4.2 VB反编译工具 200
6.4.3 .NET反编译工具 202
6.4.4 Java反编译工具 204
6.5 总结 205
第7章 IDA与逆向 206
7.1 IDA工具介绍 206
7.1.1 IDA的启动与关闭 206
7.1.2 IDA常用界面介绍 209
7.1.3 IDA的脚本功能 221
7.2 C语言代码逆向基础 224
7.2.1 函数的识别 224
7.2.2 if…else…结构分析 234
7.2.3 switch…case…default结构分析 237
7.2.4 循环结构分析 239
7.3 总结 243
第8章 逆向工具的原理及实现 244
8.1 PE工具的开发 244
8.1.1 GetProcAddress函数的使用 244
8.1.2 GetProcAddress函数的实现 245
8.2 调试工具的开发 249
8.2.1 常见的3种断点 249
8.2.2 调试API函数及相关结构体 253
8.2.3 打造一个密码显示器 263
8.3 总结 267
第9章 安卓逆向分析 268
9.1 安卓开发环境的搭建 268
9.1.1 JDK的安装 268
9.1.2 Android Studio的安装 269
9.1.3 Android虚拟设备的创建 270
9.2 创建第 一个Android App 272
9.2.1 创建一个HelloWorld程序 273
9.2.2 Android项目结构简介 275
9.2.3 为Android程序添加简单的功能 275
9.3 简单逆向安卓程序 280
9.3.1 Android Killer工具 280
9.3.2 修改app-release文件 281
9.4 Android Studio调试Smali代码 285
9.4.1 Smalidea插件的安装 285
9.4.2 调试Smali代码 286
9.5 Android App其他逆向工具简介 288
9.5.1 JEB工具 289
9.5.2 jadx工具 291
9.5.3 Android逆向助手 292
9.6 总结 293
第 10章 DEX文件格式解析 294
10.1 DEX文件解析 294
10.1.1 准备一个待解析的DEX文件 294
10.1.2 DEX文件格式详解 297
10.2 实现DEX文件格式解析工具 324
10.2.1 解析工具所需的结构体 324
10.2.2 解析DEX文件 325
10.3 小结 341
第 11章 Dalvik指令解析 342
11.1 Smali文件结构 342
11.1.1 文件结构 342
11.1.2 数据类型 345
11.1.3 函数定义 346
11.2 Smali指令介绍 346
11.2.1 Smali格式介绍 346
11.2.2 常用指令分类 348
11.2.3 代码阅读 350
11.3 完成DEX文件格式最后部分的解析 355
11.3.1 DexCode结构体的回顾 355
11.3.2 字节码转Smali指令 356
11.3.3 反汇编功能的实现 360
11.4 总结 371
参考文献 372
猜您喜欢