- 献词
- 致谢
- 前言
- 第一部分 IDA 简介
- 第 1 章 反汇编简介
- 第 2 章 逆向与反汇编工具
- 第 3 章 IDA Pro 背景知识
- 第二部分 IDA 基本用法
- 第 4 章 IDA 入门
- 第 5 章 IDA 数据显示窗口
- 第 6 章 反汇编导航
- 第 7 章 反汇编操作
- 第 8 章 数据类型与数据结构
- 第 9 章 交叉引用与绘图功能
- 第 10 章 IDA 的多种面孔
- 第三部分 IDA 高级应用
- 第 11 章 定制 IDA
- 第 12 章 使用 FLIRT 签名来识别库
- 第 13 章 扩展 IDA 的知识
- 第 14 章 修补二进制文件及其他 IDA 限制
- 第四部分 扩展 IDA 的功能
- 第 15 章 编写 IDA 脚本
- 第 16 章 IDA 软件开发工具包
- 第 17 章 IDA 插件体系结构
- 第 18 章 二进制文件与 IDA 加载器模块
- 第 19 章 IDA 处理器模块
- 第五部分 实际应用
- 第 20 章 编译器变体
- 第 21 章 模糊代码分析
- 第 22 章 漏洞分析
- 第 23 章 实用 IDA 插件
- 第六部分 IDA 调试器
- 第 24 章 IDA 调试器
- 第 25 章 反汇编器/ 调试器集成
- 第 26 章 其他调试功能
- 附录 A 使用 IDA 免费版本 5.0
- 附录 B IDC/SDK 交叉引用
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第 20 章 编译器变体
现在,如果你已经掌握了前面的内容,你就拥有了高效使用 IDA 的基本技巧,更重要的是,能让 IDA 为你工作。作为初学者,下一步该学习如何适应二进制文件(而非 IDA )将扔给你的“忍者星”飞镖了。根据你分析汇编语言的动机,你要么对你分析的代码非常熟悉,要么对它一无所知。如果你碰巧花费了大量时间研究在 Linux 平台上使用 gcc 编译的代码,那么,你可能非常熟悉它生成的代码的风格。另一方面,如果有人给你一个使用 Microsoft Visual C++(VC++)编译的调试版程序,那么,对于你看到的代码,你会感到十分困惑。恶意软件分析人员尤其会遇到各种类型的代码。即使暂时将与模糊相关的主题放在一边,恶意软件分析人员还是很可能会在同一天下午看到使用 Visual Basic、Delphi、Visual C/C++等其他语言创建的代码。
在这一章中,我们将简要讨论 IDA 中各种编译器的不同之处。这样做的目的不是为了研究编译器为何存在差异,而是为了揭示这些差异如何在反汇编代码清单中表现出来,以及如何解析这些差异。此外,用于构建特定软件的编译器及相关选项构成了分析该软件作者的一个数据点。
虽然存在大量使用各种语言的编译器,但是,在本章的示例中,我们主要使用已编译 C 代码,因为各种平台的 C 编译器很常见。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论