IDA Pro - 应用函数签名

逆向工程 艾达 linux C 小精灵
2021-06-28 23:17:57

我有三个文件:

  1. ELF 可执行文件,
  2. ELF 动态链接库 ( .so),
  3. C 头文件 ( .h) 具有该库的函数签名和相关结构。

#1 从 #2 导入了许多函数。

有没有办法让我利用 #3 自动将 #3 中的签名应用到:

  1. 在一个 IDA 实例中导入 #1?
  2. 在另一个 IDA 实例中导出 #2?
2个回答

SDK 中有几个函数,在这里typeinf.hpp或者ida_typeinf.py可以在这里使用,python API 更容易使用。

  • parse_decls - 用于将头文件转换为 til_t 类型库。
    • 这个函数似乎跳过了普通的函数声明。
    • 但确实按名称存储 typedef。
  • parse_decl- 用于将单个声明转换为tinfo_t对象。
    • 这确实适用于函数声明,但会丢失函数名称。
  • get_named_type - 用于在 til_t 中查找类型。
  • apply_type - 将类型应用于函数。

因此,您可以自己从函数声明中解析名称,然后使用parse_decl来单独解析每个声明。

或者您可以添加typedef到每个声明的开头,因此 ida 将按名称将所有声明存储在类型库中。

尝试使用 File -> Load File -> Parse C Header File (Ctrl+F9)。您可能需要调整头文件中的一些内容。