看流星社区

 找回密码
 注册账号
查看: 11783|回复: 20

[C/C++书籍] 最新IDA Pro权威指南 中文版 pdf电子版 【查阅】

[复制链接]

该用户从未签到

发表于 2011-8-3 14:30:10 | 显示全部楼层 |阅读模式
书名: IDA Pro权威指南   
评论星级:   五星  
书号: 978-7-115-22263-3   
原书名: The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler   
原出版社: No Starch Press   
丛书名: 图灵程序设计丛书   
分类: 计算机  
计算机 >> 程序设计 >> 汇编语言   
作者: Chris Eagle   
译者: 石华耀 段桂菊   
出版日期: 2010-03-18   
语种: 简体中文   
开本: 16开   
页数: 464   
定价: 79.00 元人民币  

  上个世纪90年代中期,当IDA Pro的开发者Ilfak Guilfanov和我决定离开共享软件领域,转向专业市场时,我并没有预见到,10多年后,IDA会在IT安全领域扮演如此重要的角色。但是,当IDA 赢得市场份额后,我们多次听到用户的抱怨:它的文档资料不够,且不说质量是否够高,至少在表述上还不够好。要知道,grep要求很严格,文档不能出错。  
  这些年有几本有关IDA的书面市。虽然其中一些书有了重大的突破,我们也始终感谢这些作者推广我们的劳动成果,但我们一直没有看到理想的IDA图书——那种既告诉我们如何使用IDA,又教会我们如何扩展它以解决新问题的书。  
  确实,撰写有关IDA图书需要有很大的勇气。一本描述如此复杂的工具的书不可能只是蜻蜓点水,薄薄的小册子是绝对交待不过去的。这是一个大型项目,需要作者投入大量时间,并且必须仔细规划。作者必须对数量惊人的信息进行整理并归入各个章节中。这才仅仅是开始,你不能将大量的信息硬塞给一个无助的读者,还希望得到最佳效果。所以,作者还必须是一名经验丰富的教师。  
  当然,拿到书后,它的实际益处需要根据读者能够利用它做什么来评估。最基本的是你想要从中学会什么,而不是信息本身。当然,名师出高徒,学生学得怎么样,还要看老师教得好不好。  
最后同样重要的是,IDA图书的目标读者也许是技术最为熟练的IT专业人士。乐观主义者认为他们明辨是非,而悲观主义者则认为他们吹毛求疵。你需要一套既权威又令人信服的理论来使这群人满意。由于有这么多苛刻的要求,许多年来,撰写一本优秀的IDA图书似乎一直是件不可能的事。  
  Chris Eagle出现了。我第一次注意到Chris是在他发布他的模拟器插件时。那时,我还在直接参与恶意代码分析,并且知道模拟是解决所有问题的正确方法,只是这需要做大量工作。一个发布模拟器源代码的人,与一群发布攻击教程的所谓的黑客,他们之间有着明显的区别。  
  让人印象更深刻的是,Chris愿与他人分享自己的劳动成果。我清楚地知道,有另外几个IDA用户已经开发出了非常优秀的处理器模块和附加件,但他们一直保密,这些知识从未得到共享。令人遗憾的是,这有悖于IDA的开放式体系架构。Chris是第一个打破这种藩篱的优秀的IDA用户。很快,Ilfak和我在心底里默默企望,Chirs,或者某个像Chris一样的人,能够撰写一本有关IDA Pro的图书。不久,我们的希望变成了实现。当我翻开Chris诚心诚意送来给我审阅的PDF文件时,我心里的喜悦之情溢于言表。  
  信息量有多大?自己看!Chris做了大量工作,收集并整理了尽可能多的信息,最终撰写出这本言简意赅的书。本书结构紧凑,与现在的许多IT图书截然不同。在这本书里,你看不到花里胡哨的样式、毫无价值的截图、含糊其辞的概述和浪费页面的表格。  
  教学方法是什么?自己看!本书设置了各种情景,并以此为基础,由使用IDA的基础功能顺理成章地扩展到利用其最强大的功能(脚本和可扩展性)来处理实际的复杂问题。本书证明,Chris拥有很高的教学天赋。  
  你能够学到什么知识?自己看!Chris很好地把握了问题的核心,他首先描述一个问题,然后有条不紊地设计解决方案。他从不满足于只能临时应急的解决办法。虽然他提供的方法需要读者付出更大的努力才能完成,但我们知道,他提供的是正确的方法。  
  有哪些权威的观点?自己看!Chris的模拟器是公开发布的IDA插件中最有用的插件之一。他已经撰写了一些有关IDA的重要论文,并多次宣讲和演示。多年来,他一直是一位受人尊敬的IDA公告牌撰写人。从他作品的字里行间,我们可以体会他精益求精的态度。  
  恰当的材料,充足的时间,于是诞生了这本书。它是迄今为止最全面、最准确、最好的IDA Pro图书。希望你和我们一样喜欢这本书。  

Pierre Vandevenne,1996年至2007年的IDA Pro研发者  
2008年7月于比利时列日市  

目录  

第一部分 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  

下载地址:
游客,如果您要查看本帖隐藏内容请回复

该用户从未签到

发表于 2011-8-10 03:30:53 | 显示全部楼层
这个得看下次啊

该用户从未签到

发表于 2011-10-19 09:19:20 | 显示全部楼层
学要啊,谢谢了
  • TA的每日心情
    萌哒
    2022-10-27 09:07
  • 发表于 2011-11-21 01:49:43 | 显示全部楼层
    学要啊,谢谢了

    该用户从未签到

    发表于 2011-12-29 02:31:35 | 显示全部楼层
    非常感谢...

    该用户从未签到

    发表于 2012-3-25 00:48:17 | 显示全部楼层
    这个是好东东,必须看!

    该用户从未签到

    发表于 2012-8-27 17:24:58 | 显示全部楼层
    U蛋的悲剧啊

    该用户从未签到

    发表于 2012-9-7 15:00:34 | 显示全部楼层
    这个得看下啊

    该用户从未签到

    发表于 2013-2-7 22:34:08 | 显示全部楼层
    kjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

    该用户从未签到

    发表于 2013-4-7 19:42:46 | 显示全部楼层
    看看这个逆向屠龙刀怎么使
    点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
    您需要登录后才可以回帖 登录 | 注册账号

    本版积分规则

    小黑屋|手机版|Archiver|看流星社区 |网站地图

    GMT+8, 2024-4-24 09:09

    Powered by Kanliuxing X3.4

    © 2010-2019 kanliuxing.com

    快速回复 返回顶部 返回列表