飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 255|回复: 4

[分享] ret-sync 逆向工程工具同步插件修复版

[复制链接]
  • TA的每日心情
    奋斗
    2025-1-14 12:14
  • 签到天数: 1206 天

    [LV.10]以坛为家III

    发表于 前天 11:33 | 显示全部楼层 |阅读模式
    ret-sync:IDA Pro 与 x64dbg 实时同步调试插件 [IDA 9.x 适配版]一、插件介绍
    ret-sync(Reverse Engineering Tools Synchronization)是一款用于 IDA Pro 与调试器实时同步的开源工具。通过本插件,你可以在 x64dbg 动态调试时,IDA Pro 自动定位到对应代码位置,实现静态分析与动态调试的无缝衔接。
    主要特性
    • ✅ 实时地址同步:调试器单步执行,IDA 自动跳转
    • ✅ 断点双向同步:IDA 设置断点,调试器自动生效
    • ✅ 反编译联动:伪代码窗口与汇编指令对应
    • ✅ 快捷键操作:F2/F7/F8 等快捷键直接控制
      适用场景
    • 恶意代码分析
    • 漏洞挖掘与利用
    • 软件逆向工程
    • 协议逆向分析

    二、版本信息
    组件
    版本要求

    IDA Pro9.0 / 9.1 / 9.2 / 9.3
    Python3.10 / 3.11 / 3.12 / 3.13
    x64dbg最新稳定版
    特别说明
    • 原版 ret-sync 仅支持 IDA 7.x(Qt 5 + PyQt5)
    • 本版本针对 IDA 9.x(Qt 6 + PySide6)进行了完整适配
    • 已解决 Qt 枚举兼容、编码乱码、环境变量等问题

    三、安装配置3.1 安装 Python3.2 设置环境变量
    图形界面设置
    • Win+R → 输入 sysdm.cpl → 回车
    • 高级 → 环境变量 → 用户变量 → 新建
    • 变量名:PYTHON_PATH
    • 变量值:C:\Python313\python.exe
      命令行设置

    setx PYTHON_PATH "C:\Python313\python.exe"
    验证设置
    echo %PYTHON_PATH%3.3 部署 IDA 插件
    将附件中的以下文件复制到 IDA 插件目录:
    目标目录:IDA安装路径\plugins\
    ​
    复制内容:
    ├── SyncPlugin.py
    └── retsync\
        ├── __init__.py
        ├── broker.py
        ├── dispatcher.py
        ├── rsconfig.py
        ├── syncrays.py
        └── ...(其他文件)3.4 部署 x64dbg 插件
    将附件中的插件文件复制到 x64dbg:
    32位插件:sync.dp32 → x64dbg\release\x32\plugins\
    64位插件:sync.dp64 → x64dbg\release\x64\plugins\四、使用指南4.1 启动同步
    IDA 端
    • 打开目标程序,保存为 .idb 文件(必须保存!)
    • 加载插件:Edit → Plugins → ret sync
      • 或使用快捷键:Alt + Shift + S

    • 在插件窗口中勾选 Enable sync
    • 确认输出窗口显示:
      [sync] broker started
      [sync] dispatcher now running with pid: xxxxx
      [sync] connected to dispatcher
      x64dbg 端
    • 打开同一个目标程序
    • 在命令栏输入:!sync
    • 确认显示:
      [sync] sync is now enabled with host 127.0.0.1
    4.2 调试操作
    连接成功后:
    • x64dbg 单步(F7/F8):IDA 自动跳转到对应地址
    • IDA 按 F2:在当前位置设置断点,x64dbg 同步
    • IDA 反编译窗口:实时显示当前函数的伪代码

    4.3 快捷键列表
    快捷键
    功能说明

    F2设置/取消软件断点
    F3设置一次性断点
    F10单步步过(Step Over)
    F11单步步入(Step Into)
    Ctrl+F1导出当前断点列表
    Ctrl+F2设置硬件断点
    Ctrl+F3设置一次性硬件断点
    Alt+F2地址转换
    Alt+F5运行到当前光标位置
    Ctrl+Alt+F5运行程序五、常见问题解答Q1:插件加载失败,提示 "AttributeError: 'SyncForm_t' object has no attribute 'broker'"
    原因:环境变量未正确设置
    解决
    • 确认 PYTHON_PATH 环境变量已设置
    • 重启 IDA 使环境变量生效
    • 检查 Python 路径是否正确

    Q2:x64dbg 连接后立即断开
    原因:编码问题或端口占用
    解决
    • 查看日志文件:
      type %TEMP%\retsync.broker.log
    • 检查文件名是否包含中文或特殊字符
    • 检查端口 9100 是否被占用:
      netstat -ano | findstr "9100"
    Q3:同步地址不正确
    原因:基地址不匹配(ASLR)
    解决
    • 在 IDA 中查看基地址:View → Open subviews → Segments
    • 在 x64dbg 中查看基地址:Memory Map 窗口
    • 如果不一致,在 IDA 中重定位:
      • Edit → Segments → Rebase program
      • 输入 x64dbg 中的实际基地址


    Q4:中文文件名显示乱码
    原因:编码转换问题
    解决
    • 本版本已支持 GBK 编码自动识别
    • 如仍有问题,建议将文件重命名为纯英文

    Q5:提示 "dispatcher not found"
    原因:dispatcher 启动失败
    解决
    • 检查 Python 环境是否完整
    • 查看错误日志:
      type %TEMP%\retsync.dispatcher.err
    六、技术实现
    本插件采用三层架构:
    ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
    │    IDA      │────▶│   Broker    │◀────│   x64dbg    │
    │  (Plugin)   │     │ (Dispatcher)│     │  (Plugin)   │
    └─────────────┘     └─────────────┘     └─────────────┘
    • IDA Plugin:Python 插件,处理 IDA 端的同步请求
    • Broker:Python 进程,负责消息转发和调度
    • Dispatcher:Python 进程,管理多个客户端连接
    • x64dbg Plugin:C++ 插件,处理调试器端的消息
      通信协议:基于 TCP 的自定义 JSON 协议

    七、修复内容
    相比原版,本版本修复了以下问题:
    问题
    原因
    解决方案

    Qt 枚举类型错误PySide6 枚举不是整数使用 .value 获取整数值
    QProcess 启动失败API 签名变更统一使用 start(program, args)
    UTF-8 解码错误GBK 编码不支持添加多编码解码支持
    环境变量丢失子进程未继承显式传递 os.environ.copy()
    Python 3.13 兼容distutils 移除使用 shutil.which
    详细修复过程见附件中的 ret-sync 修复记录.md。
    八、致谢与声明
    致谢
    • 原作者:Alexandre Gazet (@aegistools)
    • 原团队:Quarkslab
    • 版权
    • 本插件基于 ret-sync 修改
    • 遵循 GNU General Public License v3.0 开源协议
    • 修改部分同样遵循 GPL v3
      声明
    • 本工具仅供安全研究和学习使用
    • 请勿用于非法用途
    • 使用者需自行承担风险



    如果本插件对你有帮助,请回复支持!问题反馈请附上日志文件内容。

    ret-sync.rar

    186.95 KB, 阅读权限: 8, 下载次数: 15, 下载积分: 飘云币 -2 枚

    解压:chinapyg

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-4-5 00:38
  • 签到天数: 39 天

    [LV.5]常住居民I

    发表于 前天 14:02 | 显示全部楼层
    感谢楼主分享好资源
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-14 13:49
  • 签到天数: 393 天

    [LV.9]以坛为家II

    发表于 前天 15:34 | 显示全部楼层
    PYG有你更精彩!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表