IDA/Hexrays SDK:如何保留 lvar 名称?

逆向工程 艾达 六线谱 idapro-sdk
2021-06-30 00:22:20

昨晚我扩展了 HexRaysCodeXplorer 的功能——实现了自动重命名重复变量的功能。它需要一些修复才能正常工作,但我无法解决的问题是 - 如何保留 lvar 名称?

这是它的工作原理:

  1. 前:

    前

  2. 后:

    后

这些名称只存在到当前 Ida 会话结束。

我已经阅读了 Ida 的 netnodes,但我认为将 lvar 名称存储在此容器中并在每个会话开始时进行重命名是不合理的。我怀疑有一些本地方法可以保留基本信息(例如在这种情况下),但我找不到它。

因为我必须分析 c-tree,所以我使用了 HexRays 类,例如:ctree_visitor_tcfuncptr_tlvar_t

1个回答

没有必要存储它们。因为我猜你的 lvar 名称生成算法在计算上不是很昂贵,你可以在每次反编译函数时重新生成它们。

(这是我的CrowdDetox Hex-Rays 插件使用的方法。)