【问题标题】:[IDA plugin]How to set variables type in python api?[IDA插件]如何在python api中设置变量类型?
【发布时间】:2018-08-18 01:27:10
【问题描述】:

我现在正在开发 IDA 插件。但我在这方面遇到了一些问题。我需要你的帮助。

情况如下:

  • 我使用 hexray 插件获得了一个反编译函数,如下所示:c_func=idaapi.decompile(0x1234)。
  • 获得c_func 对象后,我想对这个对象进行操作,比如改变一些lvars 的类型,然后获得更新的伪C 代码。但我不知道该怎么做。关于这个主题的参考很少。

有人可以帮我解决这个问题吗?

其实,我想做的只是在 IDA 的伪代码窗口中模拟“Set lvar Type”。如果为某些 lvar 设置了适当的类型,则 hex-ray 反编译器将根据新类型自动更改伪 C 代码。

我想通过调用 SDK API 来做到这一点。

【问题讨论】:

    标签: python plugins ida


    【解决方案1】:

    做这样的事情:

    c=idaapi.decompile(func.startEA)
    for v in c.lvars:
        if name==v.name:
            v.set_lvar_type(...)  or v.set_final_lvar_type(...) or v.force_lvar_type(...)
    

    请看这里:https://www.hex-rays.com/products/decompiler/manual/sdk/classlvar__t.shtml#a2963a6281d004d2868728ec8c8c04fd6

    您可以创建 t_info 并使用反序列化函数来设置类型。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 2018-06-18
      • 2010-09-07
      • 2022-07-13
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多