IDA Pro权威指南
1推荐 收藏
4.6K阅读
图灵程序设计丛书

IDA Pro权威指南

Chris Eagle (作者) 段桂菊 , 石华耀 (译者)
终止销售
  本书一共分为六个部分,以反汇编与逆向工程的基本信息和IDA Pro 的背景知识开篇,为读者奠定基础,紧接着循序渐进地讲解IDA Pro 的基本使用、高级使用、扩展功能和它在安全领域的实际应用,最后介绍IDA 调试器,一方面让用户对IDA Pro 有全面深入的了解,另一方面让读者掌握IDA Pro 在现实中的应用。
  本书适合IT 领域的所有安全工作者阅读。
纸质书
¥79.00

其他购买方式?

出版信息

同系列书

  • JavaScript高级程序设计(第4版)

    [美]马特·弗里斯比(Matt Frisbie)   李松峰   译

    本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了Java...

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

本书特色

IDA Pro发行者亲自作序推荐
Amazon全五星畅销图书
引领你步入IDA Pro和逆向工程的殿堂

目录

第一部分 IDA简介
第1章 反汇编简介    2
1.1 反汇编理论    2
1.2 何为反汇编    3
1.3 为何反汇编    3
1.3.1 分析恶意软件    4
1.3.2 漏洞分析    4
1.3.3 软件互操作性    4
1.3.4 编译器验证    4
1.3.5 显示调试信息    5
1.4 如何反汇编    5
1.4.1 基本的反汇编算法    5
1.4.2 线性扫描反汇编    6
1.4.3 递归下降反汇编    7
1.5 小结    10
第2章 逆向与反汇编工具    11
2.1 分类工具    11
2.1.1 file    11
2.1.2 PE Tools    13
2.1.3 PEiD    14
2.2 摘要工具    14
2.2.1 nm    15
2.2.2 ldd    16
2.2.3 objdump    17
2.2.4 otool    18
2.2.5 dumpbin    18
2.2.6 c++filt    19
2.3 深度检测工具    20
2.3.1 strings    20
2.3.2 反汇编器    21
2.4 小结    22
第3章 IDA Pro背景知识    23
3.1 Hex-Rays公司的反盗版策略    23
3.2 获取IDA Pro    24
3.2.1 IDA版本    24
3.2.2 IDA许可证    24
3.2.3 购买IDA    25
3.2.4 升级IDA    25
3.3 IDA支持资源    25
3.4 安装IDA    26
3.4.1 Windows安装    26
3.4.2 OS X和Linux安装    27
3.4.3 IDA目录的结构    28
3.5 IDA用户界面    29
3.6 小结    29
第二部分 IDA基本用法
第4章 IDA入门    32
4.1 启动IDA    32
4.1.1 IDA文件加载    34
4.1.2 使用二进制文件加载器    35
4.2 IDA数据库文件    37
4.2.1 创建IDA数据库    38
4.2.2 关闭IDA数据库    38
4.2.3 重新打开数据库    39
4.3 IDA桌面简介    40
4.4 初始分析时的桌面行为    42
4.5 IDA桌面提示和技巧    43
4.6 报告bug    44
4.7 小结    44
第5章 IDA数据显示窗口    45
5.1 IDA主要的数据显示窗口    45
5.1.1 反汇编窗口    45
5.1.2 Names窗口    50
5.1.3 消息窗口    51
5.1.4 Strings窗口    52
5.2 次要的IDA显示窗口    53
5.2.1 十六进制窗口    53
5.2.2 导出窗口    54
5.2.3 导入窗口    54
5.2.4 函数窗口    55
5.2.5 结构体窗口    55
5.2.6 枚举窗口    56
5.3 其他IDA显示窗口    56
5.3.1 段窗口    56
5.3.2 签名窗口    57
5.3.3 类型库窗口    58
5.3.4 函数调用窗口    58
5.3.5 问题窗口    59
5.4 小结    59
第6章 反汇编导航    60
6.1 基本IDA导航    60
6.1.1 双击导航    60
6.1.2 跳转到地址    62
6.1.3 导航历史记录    62
6.2 栈帧    63
6.2.1 调用约定    64
6.2.2 局部变量布局    67
6.2.3 栈帧示例    67
6.2.4 IDA栈视图    70
6.3 搜索数据库    74
6.3.1 文本搜索    75
6.3.2 二进制搜索    75
6.4 小结    76
第7章 反汇编操作    77
7.1 名称与命名    77
7.1.1 参数和局部变量    77
7.1.2 已命名的位置    79
7.1.3 寄存器名称    80
7.2 IDA中的注释    80
7.2.1 常规注释    82
7.2.2 可重复注释    82
7.2.3 在前注释和在后注释    82
7.2.4 函数注释    82
7.3 基本代码转换    83
7.3.1 代码显示选项    83
7.3.2 格式化指令操作数    85
7.3.3 操纵函数    86
7.3.4 数据与代码互相转换    91
7.4 基本数据转换    91
7.4.1 指定数据大小    92
7.4.2 处理字符串    93
7.4.3 指定数组    94
7.5 小结    96
第8章 数据类型与数据结构    97
8.1 识别数据结构的使用    98
8.1.1 数组成员访问    98
8.1.2 结构体成员访问    102
8.2 创建IDA结构体    107
8.3 使用结构体模板    111
8.4 导入新的结构体    114
8.4.1 解析C结构体声明    114
8.4.2 解析C头文件    115
8.5 使用标准结构体    115
8.6 IDA TIL文件    118
8.6.1 加载新的TIL文件    118
8.6.2 共享TIL文件    118
8.7 C++逆向工程基础    119
8.7.1 this指针    119
8.7.2 虚函数和虚表    120
8.7.3 对象生命周期    122
8.7.4 名称改编    124
8.7.5 运行时类型识别    125
8.7.6 继承关系    126
8.7.7 C++逆向工程参考文献    127
8.8 小结    127
第9章 交叉引用与绘图功能    128
9.1 交叉引用    128
9.1.1 代码交叉引用    129
9.1.2 数据交叉引用    131
9.1.3 交叉引用列表    133
9.1.4 函数调用    134
9.2 IDA绘图    135
9.2.1 IDA的遗留绘图功能    135
9.2.2 IDA的集成图形视图    141
9.3 小结    143
第10章 IDA的多种面孔    144
10.1 控制台模式IDA    144
10.1.1 控制台模式的共同特性    144
10.1.2 Windows控制台    145
10.1.3 Linux控制台    146
10.1.4 OS X控制台    148
10.2 使用IDA的批量模式    150
10.3 非Windows平台上的GUI IDA    151
10.4 小结    152
第三部分 IDA高级应用
第11章 定制IDA    154
11.1 配置文件    154
11.1.1 主配置文件:ida.cfg    154
11.1.2 GUI配置文件:idagui.cfg    155
11.1.3 控制台配置文件:idatui.cfg    157
11.2 其他IDA配置选项    158
11.2.1 IDA颜色    159
11.2.2 定制IDA工具栏    159
11.3 小结    161
第12章 使用FLIRT签名来识别库    162
12.1 快速库识别和鉴定技术    162
12.2 应用FLIRT签名    163
12.3 创建FLIRT签名文件    166
12.3.1 创建签名概述    166
12.3.2 识别和获取静态库    167
12.3.3 创建模式文件    168
12.3.4 创建签名文件    169
12.3.5 启动签名    171
12.4 小结    172
第13章 扩展IDA的知识    173
13.1 扩充函数信息    173
13.1.1 IDS文件    175
13.1.2 创建IDS文件    176
13.2 使用loadint扩充预定义注释    178
13.3 小结    179
第14章 修补二进制文件及其他IDA
限制    180
14.1 隐藏的补丁程序菜单    180
14.1.1 更改数据库字节    181
14.1.2 更改数据库中的字    181
14.1.3 使用“汇编”对话框    182
14.2 IDA输出文件与补丁生成    183
14.2.1 IDA生成的MAP文件    183
14.2.2 IDA生成的ASM文件    184
14.2.3 IDA生成的INC文件    184
14.2.4 IDA生成的LST文件    185
14.2.5 IDA生成的EXE文件    185
14.2.6 IDA生成的DIF文件    185
14.2.7 IDA生成的HTML文件    186
14.3 小结    186
第四部分 扩展IDA的功能
第15章 编写IDC脚本    188
15.1 执行脚本的基础知识    188
15.2 IDC语言    189
15.2.1 IDC变量    190
15.2.2 IDC表达式    190
15.2.3 IDC语句    190
15.2.4 IDC函数    191
15.2.5 IDC程序    192
15.2.6 IDC错误处理    192
15.2.7 IDC永久数据存储    193
15.3 关联IDC脚本与热键    194
15.4 有用的IDC函数    195
15.4.1 读取和修改数据的函数    196
15.4.2 用户交互函数    196
15.4.3 字符串操纵函数    197
15.4.4 文件输入/输出函数    197
15.4.5 操纵数据库名称    198
15.4.6 处理函数的函数    199
15.4.7 代码交叉引用函数    199
15.4.8 数据交叉引用函数    200
15.4.9 数据库操纵函数    200
15.4.10 数据库搜索函数    201
15.4.11 反汇编行组件    201
15.5 IDC脚本示例    202
15.5.1 枚举函数    202
15.5.2 枚举指令    202
15.5.3 枚举交叉引用    203
15.5.4 枚举导出的函数    205
15.5.5 查找和标记函数参数    206
15.5.6 模拟汇编语言行为    208
15.6 小结    209
第16章 IDA软件开发工具包    211
16.1 SDK简介    212
16.1.1 安装SDK    212
16.1.2 SDK的布局    212
16.1.3 配置构建环境    213
16.2 IDA应用编程接口    214
16.2.1 头文件概述    214
16.2.2 网络节点    217
16.2.3 有用的SDK数据类型    223
16.2.4 常用的SDK函数    224
16.2.5 IDA API迭代技巧    229
16.3 小结    232
第17章 IDA插件体系结构    233
17.1 编写插件    233
17.1.1 插件生命周期    235
17.1.2 插件初始化    236
17.1.3 事件通知    237
17.1.4 插件执行    238
17.2 构建插件    239
17.3 插件安装    243
17.4 插件配置    244
17.5 扩展IDC    244
17.6 插件用户界面选项    247
17.7 小结    254
第18章 二进制文件与IDA加载器模块    255
18.1 未知文件分析    256
18.2 手动加载一个Windows PE文件    256
18.3 IDA加载器模块    263
18.4 编写IDA加载器    263
18.4.1 “傻瓜式”加载器    265
18.4.2 构建IDA加载器模块    269
18.4.3 IDA pcap加载器    269
18.5 其他加载器策略    274
18.6 小结    275
第19章 IDA处理器模块    276
19.1 Python字节码    277
19.2 Python解释器    277
19.3 编写处理器模块    277
19.3.1 processor_t结构体    278
19.3.2 LPH结构体的基本初始化    278
19.3.3 分析器    282
19.3.4 模拟器    286
19.3.5 输出器    288
19.3.6 处理器通知    293
19.3.7 其他processor_t成员    294
19.4 构建处理器模块    296
19.5 定制现有的处理器    299
19.6 处理器模块体系结构    301
19.7 小结    302
第五部分 实际应用
第20章 编译器变体    304
20.1 跳转表与分支语句    304
20.2 RTTI实现    308
20.3 定位main函数    308
20.4 调试版与发行版二进制文件    315
20.5 其他调用约定    317
20.6 小结    317
第21章 模糊代码分析    319
21.1 反静态分析技巧    319
21.1.1 反汇编去同步    319
21.1.2 动态计算目标地址    322
21.1.3 导入的函数模糊    327
21.1.4 有针对性地攻击分析工具    331
21.2 反动态分析技巧    331
21.2.1 检测虚拟化    331
21.2.2 检测“检测工具”    333
21.2.3 检测调试器    333
21.2.4 防止调试    334
21.3 使用IDA对二进制文件进行“静态去模糊”    335
21.3.1 面向脚本的去模糊    335
21.3.2 面向模拟的去模糊    339
21.4 小结    349
第22章 漏洞分析    350
22.1 使用IDA发现新的漏洞    351
22.2 使用IDA在事后发现漏洞    356
22.3 IDA与破解程序开发过程    359
22.3.1 栈帧细目    360
22.3.2 定位指令序列    362
22.3.3 查找有用的虚拟地址    363
22.4 分析shellcode    364
22.5 小结    366
第23章 实用IDA插件    367
23.1 Hex-Rays    367
23.2 IDAPython    368
23.3 IDARub    371
23.4 IDA Sync    371
23.5 collabREate    374
23.6 ida-x86emu    377
23.7 mIDA    377
23.8 小结    379
第六部分 IDA调试器
第24章 IDA调试器    382
24.1 启动调试器    382
24.2 调试器的基本显示    384
24.3 进程控制    387
24.3.1 断点    388
24.3.2 跟踪    390
24.3.3 栈跟踪    393
24.3.4 监视    393
24.4 调试器任务自动化    393
24.4.1 使用IDC为调试器操作编写
脚本    394
24.4.2 使用IDA插件实现调试器操
作自动化    398
24.5 小结    400
第25章 反汇编器/调试器集成    401
25.1 背景知识    401
25.2 IDA数据库与IDA调试器    402
25.3 调试模糊代码    404
25.3.1 简单的解密和解压循环    404
25.3.2 导入表重建    407
25.3.3 隐藏调试器    410
25.3.4 处理异常    414
25.4 小结    418
第26章 Linux、OS X平台的IDA和
远程调试    419
26.1 控制台模式的调试    419
26.2 使用IDA进行远程调试    420
26.2.1 远程调试中的异常处理    422
26.2.2 在远程调试中使用脚本和
插件    423
26.3 小结    423
附录A 使用IDA 4.9免费版    424
附录B IDC/SDK交叉引用    426
附录C IDA 5.3的新功能    444
  • 沙发~~
    L  发表于 2017-08-01 09:08:03
    推荐