【问题标题】:What's the advantage of IDA than visual studio when disassemblying a dll?反汇编dll时,IDA比Visual Studio有什么优势?
【发布时间】:2011-04-13 15:52:35
【问题描述】:

假设我有一个使用dll的项目,所以我可以在visual studio的“反汇编窗口”中追踪到dll的内部,那么IDA在这种情况下有什么优势?有吗?

【问题讨论】:

  • 什么是IDA?你能链接到一个定义,所以我们确切地知道你的意思吗?

标签: reverse-engineering disassembly


【解决方案1】:

IDA Pro (Interactive DisAssembler) 的重点是interactive。将其视为反汇编工作的 IDE。

  1. 无需调试即可反汇编文件
  2. 自动识别代码和数据;但是,您始终可以手动覆盖其决定。
  3. 它将指令流分组为函数,并将堆栈访问转换为local variables and arguments 的符号名称。
  4. 可以显示代码流as a graph
  5. 它跟踪数据和交叉引用,例如哪些函数访问特定的数据地址,或者哪些函数调用当前地址。
  6. 即使没有调试信息,它也会自动识别常见编译器的library functions
  7. 您可以轻松地在整个二进制文件中导航,将任何位置重命名为描述性名称并添加 cmets
  8. 您可以创建structures and enumerations 并使用它们使反汇编更具描述性,用名称替换数值和偏移量。许多 Win32 API 结构是预定义的。
  9. 您可以使用内置的类 C 脚本语言 IDC 或 Python 自动执行常见任务。
  10. 常用 API 函数的参数为​​ commented and renamed。
  11. 使用可选的decompiler plugin,您可以反编译 32 位 x86 或 ARM 代码。
  12. 如果脚本不够用,可以用 C++ 编写插件。
  13. 它有许多调试器模块:本机 Win32、WinDbg 引擎、GDB(用于 x86/ARM/MIPS/PPC)、Bochs 仿真器等。也可以进行远程调试。

总之,如果你经常反汇编文件,这个工具是必不可少的。如果您想试用,请获取演示版或免费软件版本here。

免责声明:我为 Hex-Rays 工作。

【讨论】:

【解决方案2】:

这是一个很棒的工具,但是,老实说,除非你使用:

  • Hex-Rays(IDA 的反编译插件)
  • 特定的 IDA 插件(例如用于解包)
  • 流程图/交互功能

我认为没有任何优势(对于 x86 32 位系统),尤其是因为您必须为此付费,如果您想要 hex-rays 插件,还需要额外付费。 IDA Pro (x86 32bit) 所做的一切都可以使用其他免费工具以及 ollydbg 和一些插件来完成(唯一无法获得的是反编译器部分,大多数免费解决方案 suck)。

我看到的一个巨大优势(对于 x86 32 位系统)是提供的支持,Igor 的帖子清楚地证明了这一点:),免费工具和有时微软工具都没有。

注意:如果您没有注意到,我的答案仅适用于 x86 32 位系统和带有 Hex-Rays 的 32 位 IDA Pro(很久没用这个了,我是 ollydbg 的粉丝)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-04
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多