IDA协作插件

大类
Util
Research
技术标签
开发-HookPatch-Windows
开发-HookPatch-Mac
原理研究-IDA
优先级
High
状态
In Progress
开始日期
Sep 5, 2021
最后更新
Nov 2, 2021
Public
Public

项目简要情况

 
  • IDA 实时 协作插件
  • 核心技术:IDA Undo记录重放

项目架构

  1. IDA客户端
    1. (必要)Hook IDA Undo相关函数
      (必要)与服务器交互,收发Undo数据
      (必要)多人操作合并逻辑
      (可选)使用IDA已有Hook记录操作信息
  1. 协作服务器
    1. (必要)管理IDB
      (必要)存储Undo操作
      (可选)Web管理界面

项目计划与进度

客户端计划

  1. 逆向分析Undo接口(已完成)
    1. 分析IDA Undo记录的生成,以及UI的撤销、重做操作对应的C++层逻辑
  1. IDA Undo内部结构封装(已完成)
    1. 将IDA Undo的结构体用ctypes封装并导出,供Python使用
  1. 跨平台进程内Hook Python模块封装(已完成)
    1. 用于Hook Undo相关函数收取undo数据
    2. 希望能同时支持m1 mac、intel mac、windows的用户
  1. 协作插件架构建立(进行中)
    1. Hook Undo接口后,使用Undo内部结构封装取出undo数据
    2. 将undo数据可靠的转移给服务器
  1. 处理多人操作合并
 

服务端计划

  1. 操作历史记录
    1. 使用sqlite记录用户的操作历史
    2. 需支持区间查询以允许客户端进行操作合并
  1. IDB自动保存
    1. 维护一个Wine IDA的instance,实时保存IDA的数据库,方便后来人加入与错误恢复
  1. 项目管理、版本管理相关功能
 
 
IDA协作插件 工作表
架构设计
Develop
Undo逆向
 

IDA协作插件 Wiki
 
IDB 共享列表