假设我们有一个函数,其中包含以下变量:
- 不同类型堆栈上的局部变量,包括在局部类型窗口中定义的类型
- 映射到寄存器的不同类型的局部变量
- 不同类型的功能参数
我有 2 个 IDB 具有基于相同二进制文件的相同功能,我想将此数据从一个 IDB 传递到另一个。我们还假设我有一个在数据库之间传递相关数据类型的解决方案。
我知道我可以使用 user_lvar_visitor_t 类在反编译函数中迭代局部变量。我也知道有一个函数 save_user_lvar_settings 通过使用相同的迭代器类 user_lvar_visitor_t 来保存这些变量。
我对此有以下疑问:
- 我应该从第一个数据库收集哪些数据才能在第二个数据库中正确创建这些变量(使用 IDAPython,IDA 版本为 6.8)?
- 如何在第二个数据库中创建这些变量以使用 save_user_lvar_settings 或 restore_user_lvar 设置(使用 IDAPython,IDA 版本为 6.8)?
更新:在问这个问题之前,我回顾了以下 IDA 协作解决方案:
- 协作
- ida2sql
- IDA工具包
- IDAsynergy
- 同步
又一更新
- 大黄
并且无法在任何它们中找到解决我的问题的方法。