当前位置:首页 > 工业技术
IDA Pro权威指南
IDA Pro权威指南

IDA Pro权威指南PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)伊格尔著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115273680
  • 页数:493 页
图书介绍:本书是IDA Pro的权威指南,是迄今最全面的一本关于IDA Pro的著作,被业界评为“胜过官方参考手册的非官方参考手册”。本书一共分为6个部分,由浅入深,理论与实践相结合。从内容结构上来讲,本书可谓完备。
《IDA Pro权威指南》目录
标签:权威 指南

第一部分 IDA简介 2

第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 18

2.2.4 otool 18

2.2.5 dumpbin 19

2.2.6 c++filt 19

2.3深度检测工具 20

2.3.1 strings 20

2.3.2反汇编器 22

2.4小结 23

第3章 IDA Pro背景知识 24

3.1 Hex-Rays公司的反盗版策略 24

3.2获取IDA Pro 25

3.2.1 IDA版本 25

3.2.2 IDA许可证 25

3.2.3购买IDA 26

3.2.4升级IDA 26

3.3 IDA支持资源 26

3.4安装IDA 27

3.4.1 Windows安装 28

3.4.2 OS X和Linux安装 28

3.4.3 IDA与SELinux 29

3.4.4 32位IDA与64位IDA 29

3.4.5 IDA目录的结构 30

3.5 IDA用户界面 30

3.6小结 31

第二部分 IDA基本用法 34

第4章 IDA入门 34

4.1启动IDA 34

4.1.1 IDA文件加载 35

4.1.2使用二进制文件加载器 37

4.2 IDA数据库文件 38

4.2.1创建IDA数据库 39

4.2.2关闭IDA数据库 40

4.2.3重新打开数据库 41

4.3 IDA桌面简介 42

4.4初始分析时的桌面行为 44

4.5 IDA桌面提示和技巧 45

4.6报告bug 45

4.7小结 46

第5章 IDA数据显示窗口 47

5.1 IDA主要的数据显示窗口 47

5.1.1反汇编窗口 47

5.1.2函数窗口 52

5.1.3输出窗口 52

5.2次要的IDA显示窗口 52

5.2.1十六进制窗口 52

5.2.2导出窗口 53

5.2.3导入窗口 54

5.2.4结构体窗口 54

5.2.5枚举窗口 55

5.3其他IDA显示窗口 55

5.3.1 Strings窗口 55

5.3.2 Names窗口 57

5.3.3段窗口 58

5.3.4签名窗口 58

5.3.5类型库窗口 59

5.3.6函数调用窗口 59

5.3.7问题窗口 60

5.4小结 61

第6章 反汇编导航 62

6.1基本IDA导航 62

6.1.1双击导航 62

6.1.2跳转到地址 64

6.1.3导航历史记录 64

6.2栈帧 65

6.2.1调用约定 66

6.2.2局部变量布局 69

6.2.3栈帧示例 70

6.2.4 IDA栈视图 73

6.3搜索数据库 77

6.3.1文本搜索 77

6.3.2二进制搜索 77

6.4小结 78

第7章 反汇编操作 79

7.1名称与命名 79

7.1.1参数和局部变量 79

7.1.2已命名的位置 80

7.1.3寄存器名称 82

7.2 IDA中的注释 82

7.2.1常规注释 83

7.2.2可重复注释 84

7.2.3在前注释和在后注释 84

7.2.4函数注释 84

7.3基本代码转换 85

7.3.1代码显示选项 85

7.3.2格式化指令操作数 87

7.3.3操纵函数 88

7.3.4数据与代码互相转换 93

7.4基本数据转换 94

7.4.1指定数据大小 94

7.4.2处理字符串 95

7.4.3指定数组 97

7.5小结 99

第8章 数据类型与数据结构 100

8.1识别数据结构的用法 102

8.1.1数组成员访问 102

8.1.2结构体成员访问 107

8.2创建IDA结构体 112

8.2.1创建一个新的结构体(或联合) 112

8.2.2编辑结构体成员 113

8.2.3用栈帧作为专用结构体 115

8.3使用结构体模板 115

8.4导入新的结构体 118

8.4.1解析C结构体声明 118

8.4.2解析C头文件 119

8.5使用标准结构体 120

8.6 IDA TIL文件 123

8.6.1加载新的TIL文件 123

8.6.2共享TIL文件 123

8.7 C++逆向工程基础 124

8.7.1 this指针 124

8.7.2虚函数和虚表 125

8.7.3对象生命周期 128

8.7.4名称改编 129

8.7.5运行时类型识别 130

8.7.6继承关系 131

8.7.7 C++逆向工程参考文献 132

8.8小结 132

第9章 交叉引用与绘图功能 133

9.1交叉引用 133

9.1.1代码交叉引用 134

9.1.2数据交叉引用 136

9.1.3交叉引用列表 138

9.1.4函数调用 139

9.2 IDA绘图 140

9.2.1 IDA外部(第三方)图形 140

9.2.2 IDA的集成绘图视图 147

9.3小结 149

第10章 IDA的多种面孔 150

10.1控制台模式IDA 150

10.1.1控制台模式的共同特性 150

10.1.2 Windows控制台 151

10.1.3 Linux控制台 152

10.1.4 OS X控制台 154

10.2使用IDA的批量模式 156

10.3小结 157

第三部分 IDA高级应用 160

第11章 定制IDA 160

11.1配置文件 160

11.1.1主配置文件:ida.cfg 160

11.1.2 GUI配置文件:idagui.cfg 161

11.1.3控制台配置文件:idatui.cfg 163

11.2其他IDA配置选项 164

11.2.1 IDA颜色 165

11.2.2定制IDA工具栏 165

11.3小结 167

第12章 使用FLIRT签名来识别库 168

12.1快速库识别和鉴定技术 168

12.2应用FLIRT签名 169

12.3创建FLIRT签名文件 172

12.3.1创建签名概述 172

12.3.2识别和获取静态库 173

12.3.3创建模式文件 174

12.3.4创建签名文件 175

12.3.5启动签名 178

12.4小结 178

第13章 扩展IDA的知识 179

13.1扩充函数信息 179

13.1.1 IDS文件 181

13.1.2创建IDS文件 182

13.2使用loadint扩充预定义注释 184

13.3小结 185

第14章 修补二进制文件及其他IDA限制 186

14.1隐藏的补丁程序菜单 186

14.1.1更改数据库字节 187

14.1.2更改数据库中的字 187

14.1.3使用汇编对话框 188

14.2 IDA输出文件与补丁生成 189

14.2.1 IDA生成的MAP文件 189

14.2.2 IDA生成的ASM文件 190

14.2.3 IDA生成的INC文件 191

14.2.4 IDA生成的LST文件 191

14.2.5 IDA生成的EXE文件 191

14.2.6 IDA生成的DIF文件 191

14.2.7 IDA生成的HTML文件 192

14.3小结 192

第四部分 扩展IDA的功能 194

第15章 编写IDA脚本 194

15.1执行脚本的基础知识 194

15.2 IDC语言 196

15.2.1 IDC变量 196

15.2.2 IDC表达式 197

15.2.3 IDC语句 197

15.2.4 IDC函数 198

15.2.5 IDC对象 200

15.2.6 IDC程序 200

15.2.7 IDC错误处理 201

15.2.8 IDC永久数据存储 202

15.3关联IDC脚本与热键 203

15.4有用的IDC函数 204

15.4.1读取和修改数据的函数 204

15.4.2用户交互函数 205

15.4.3字符串操纵函数 206

15.4.4文件输入/输出函数 206

15.4.5操纵数据库名称 207

15.4.6处理函数的函数 207

15.4.7代码交叉引用函数 208

15.4.8数据交叉引用函数 209

15.4.9数据库操纵函数 209

15.4.10数据库搜索函数 210

15.4.11反汇编行组件 210

15.5 IDC脚本示例 211

15.5.1枚举函数 211

15.5.2枚举指令 212

15.5.3枚举交叉引用 212

15.5.4枚举导出的函数 214

15.5.5查找和标记函数参数 215

15.5.6模拟汇编语言行为 217

15.6 IDAPython 219

15.7 IDAPython脚本示例 220

15.7.1枚举函数 220

15.7.2枚举指令 221

15.7.3枚举交叉引用 222

15.7.4枚举导出的函数 222

15.8小结 223

第16章 IDA软件开发工具包 224

16.1 SDK简介 225

16.1.1安装SDK 225

16.1.2 SDK的布局 225

16.1.3配置构建环境 226

16.2 IDA应用编程接口 227

16.2.1头文件概述 228

16.2.2网络节点 230

16.2.3有用的SDK数据类型 237

16.2.4常用的SDK函数 238

16.2.5 IDA API迭代技巧 242

16.3小结 246

第17章 IDA插件体系结构 247

17.1编写插件 247

17.1.1插件生命周期 249

17.1.2插件初始化 250

17.1.3事件通知 251

17.1.4插件执行 252

17.2构建插件 254

17.3插件安装 258

17.4插件配置 259

17.5扩展IDC 259

17.6插件用户界面选项 262

17.6.1使用SDK的“选择器”对话框 262

17.6.2使用SDK创建自定义表单 265

17.6.3仅用于Windows的用户界面生成技巧 269

17.6.4使用Qt生成用户界面 269

17.7脚本化插件 271

17.8小结 272

第18章 二进制文件与IDA加载器模块 273

18.1未知文件分析 274

18.2手动加载一个Windows PE文件 275

18.3 IDA加载器模块 281

18.4使用SDK编写IDA加载器 282

18.4.1“傻瓜式”加载器 284

18.4.2构建IDA加载器模块 288

18.4.3 IDA pcap加载器 288

18.5其他加载器策略 294

18.6编写脚本化加载器 294

18.7小结 296

第19章 IDA处理器模块 297

19.1 Python字节码 298

19.2 Python解释器 298

19.3使用SDK编写处理器模块 299

19.3.1 processor_t结构体 299

19.3.2 LPH结构体的基本初始化 300

19.3.3分析器 303

19.3.4模拟器 308

19.3.5输出器 310

19.3.6处理器通知 315

19.3.7其他processor_t成员 316

19.4构建处理器模块 318

19.5定制现有的处理器 322

19.6处理器模块体系结构 324

19.7编写处理器模块 325

19.8小结 326

第五部分 实际应用 328

第20章 编译器变体 328

20.1跳转表与分支语句 328

20.2 RTTI实现 332

20.3定位main函数 332

20.4调试版与发行版二进制文件 339

20.5其他调用约定 341

20.6小结 342

第21章 模糊代码分析 344

21.1反静态分析技巧 344

21.1.1反汇编去同步 344

21.1.2动态计算目标地址 347

21.1.3导入的函数模糊 353

21.1.4有针对性地攻击分析工具 356

21.2反动态分析技巧 357

21.2.1检测虚拟化 357

21.2.2检测“检测工具” 358

21.2.3检测调试器 359

21.2.4防止调试 360

21.3使用IDA对二进制文件进行“静态去模糊” 361

21.3.1面向脚本的去模糊 361

21.3.2面向模拟的去模糊 366

21.4基于虚拟机的模糊 375

21.5小结 377

第22章 漏洞分析 378

22.1使用IDA发现新的漏洞 379

22.2使用IDA在事后发现漏洞 384

22.3 IDA与破解程序开发过程 388

22.3.1栈帧细目 389

22.3.2定位指令序列 392

22.3.3查找有用的虚拟地址 394

22.4分析shellcode 395

22.5小结 397

第23章 实用IDA插件 398

23.1 Hex-Rays 398

23.2 IDAPython 401

23.3 collabREate 402

23.4 ida-x86emu 404

23.5 Class Informer 404

23.6 MyNav 406

23.7 IdaPdf 407

23.8小结 408

第六部分 IDA调试器 410

第24章 IDA调试器 410

24.1启动调试器 410

24.2调试器的基本显示 414

24.3进程控制 416

24.3.1断点 417

24.3.2跟踪 420

24.3.3栈跟踪 422

24.3.4监视 423

24.4调试器任务自动化 423

24.4.1为调试器操作编写脚本 424

24.4.2使用IDA插件实现调试器操作自动化 428

24.5小结 430

第25章 反汇编器/调试器集成 431

25.1背景知识 431

25.2 IDA数据库与IDA调试器 432

25.3调试模糊代码 434

25.3.1启动进程 435

25.3.2简单的解密和解压循环 436

25.3.3导入表重建 439

25.3.4隐藏调试器 443

25.4 IDAStealth 448

25.5处理异常 449

25.6小结 454

第26章 其他调试功能 455

26.1使用IDA进行远程调试 455

26.1.1使用Hex-Rays调试服务器 455

26.1.2连接到远程进程 458

26.1.3远程调试期间的异常处理 458

26.1.4在远程调试过程中使用脚本和插件 458

26.2使用Bochs进行调试 459

26.2.1 Bochs IDB模式 459

26.2.2 Bochs PE模式 460

26.2.3 Bochs磁盘映像模式 461

26.3 Appcall 461

26.4小结 463

附录A 使用IDA免费版本5.0 464

附录B IDC/SDK交叉引用 466

返回顶部