如何使用带IDAPython的脚本获取函数定义中的参数数量

时间:2018-12-24 11:19:37

标签: compilation reverse-engineering decompiling ida

我正在使用IDA分析二进制文件,并且想要获取定义中每个函数的参数数量,而不是传递给被调用方函数的参数数量。 IDA版本:Windows 7.0。

要求

  1. 自动,因为我想获取所有功能的所有编号,而不是分析特定功能。使用IDAPython脚本自动提取结果除外。
  2. 用于剥离的C / C ++二进制文件。我尝试了很多方法,但是对于剥离的二进制文件,它们都无法很好地工作。但是,如果您知道未剥离二进制文件的任何其他方法,它仍然会受到欢迎,因为在某些情况下,我不得不面对未剥离二进制目标的情况。因此,在您的帮助下,我可以改善我的方法。对于剥离的二进制文件,我不知道该怎么做。
  3. Hex-Rays反编译器不是必需的。我不想将指令反编译为C / C ++语言,我只想获取每个函数的参数数量。

我尝试了以下方法:

  • idc.getType,它适用于未剥离符号的c二进制文件,不适用于c ++。
  • idc.Demangle,它可以解析c ++二进制文件的名称,并获取参数。
  • 答案https://reverseengineering.stackexchange.com/questions/8870/extracting-arguments-from-ida。但对于我的二进制文件,funcdata.size()始终为0。我不知道为什么。如果您知道,请告诉,谢谢!
  • idaapi.get_arg_address,对于我来说,它始终是None

是否有任何方法可以提取参数数量?或者我尝试过的方法出了问题。

0 个答案:

没有答案