IDA 函数窗口中的单个字母是什么意思?

逆向工程 艾达 工具
2021-07-06 04:58:45

IDA 的函数窗口,该窗口列出了 IDA 标识的所有函数,有多个列,每列由一个字母/字符表示。请参阅附图中的示例。

字符是:R, F, L, S, B,T=

功能窗口示例

每列/字符的含义是什么?

1个回答

每个列值可以是一个点或相同的列字符。这些列是布尔值,列字符代表“真”,而点代表“假”。

  • R 代表“返回”,如果函数返回,则为 True(在列的值中有一个“R”而不是一个点)。函数可能不会返回,这需要 IDA 和逆向工程师进行特殊处理。
  • F 代表“Far”,对于远函数函数为真,否则为假。
  • L 代表“库”函数,对于 IDA 识别为库函数(通常使用FLIRT)的函数也是如此
  • S 代表“静态”功能。
  • B 代表基于 E/R/BP 堆栈帧的函数。作为 IDA 分析函数的一部分,这些函数使用 xBP 寄存器来更轻松地访问堆栈。
  • T 代表类型,表示函数是否分配了类型信息。手动或由 IDA 使用 FLIRT 自动执行。
  • 等号 (=) 表示帧指针等于初始堆栈指针。

所有这些值都可以使用“编辑功能”对话框 ( alt+p)手动访问,如下所示:

IDA 编辑功能对话框

这也被记录在案,可以在Hex-Rays 网站上找到,有更简短的解释。

此外,根据Arnaud Diederen 的说法

从 7.1 开始,IDA 还为那些可以说是神秘的单字母列提供了工具提示。只需将鼠标悬停在列标题上几秒钟,工具提示就会出现。