Contents


Introduction

x64dbg是一款为 Windows 平台打造的开源、免费且强大的用户态调试器。它专为逆向工程和恶意软件分析而设计,特别是对于那些没有源代码的可执行文件。在静态逆向分析方面IDA Pro有着伪码可读性高的优势,但动态调试方面x64dbg则更胜一筹,优点如下:

  • 启动快,操作流畅:界面布局直观,快捷键(F2/F7/F8/F9)与OllyDbg一致,调试体验丝滑。
  • 插件生态丰富:拥有如 ScyllaHide(反反调试)、XAnalyzer 等大量插件,功能扩展性极强。
  • 专注于动态分析:所有功能都为运行、跟踪、修改程序状态而优化。

本文会简介x64dbg基本使用,并如何与IDA Pro伪码联动,进行调试之前需要部署反调试插件

ScyllaHide和同步插件ret-sync,部署方式可参考链接。


x64db逆向调试

x64db逆向调试dll

  1. Attach到主进程
    首先要运行你的主进程,这里选取Total Commander工具作为例子,随意开启个Total Commander窗口,再运行x64dbg按下图步骤依次选择"文件"->"附加"->"TOTALCMD64"

    image.png

     

    image.png

  2. 添加调试断点
    • 选择"符号"页面
    • 选择Total Commander会调用的动态库C:\Program Files (x86)\WinFsp\SxS\sxs.20251201T080923Z\bin\winfsp-x64.dll
    • 检索确认断点函数

      image.png

       

      image.png

  3. 实际单步调试
    添加断点后再返回Total Commander界面就会立即命中预埋断点,并可以继续单步调试执行

    image.png

x64db与IDA Pro同步动态符号信息

实现这个功能的前提是在x64dbg和IDA Pro上部署插件ret-sync。
ret-sync 用于逆向工程工具同步 (Reverse-Engineering Tools SYNChronization)。它是一组插件,用于将调试会话(WinDbg/GDB/LLDB/OllyDbg/OllyDbg2/x64dbg)与反汇编器(IDA/Ghidra/Binary Ninja)同步。其基本理念很简单:兼顾静态分析和动态分析的优势。具体部署方式可参考源码链接README

  1. 先通过IDA Pro 9.2打开我们正在调试的动态库winfsp-x64.dll,选择"Edit" ->"Plugins" ->"ret-sync"将两个同步选项勾上。

    image.png

  2. x64dbg在保持前面break的状态,我们选择"插件" ->"SyncPlugin" ->"sync enable"后ret-sync就与IDA Pro侧的host建立好连接,之后我们做单步执行之类的操作,IDA侧的伪码函数NPGetConnection()对应行就会同步高亮

    image.png

     

    image.png

x64db与IDA Pro简易地址对应方法

如果不想部署ret-sync插件,也不需要实时同步地址信息,还有个简洁高效的地址对应方法。

  • IDA 是静态分析:地址基于 文件头里的 ImageBase。

  • x64dbg 是动态调试:地址基于 运行时模块基址 (ModuleBase)。

所以要对齐,必须保证 IDA 的基址和运行时的基址一致。

  1. 在 x64dbg 里找到动态库基址
    打开 Memory Map (Alt+M),找到调试目标动态库(我们这里是winfsp-x64.dll), 记录它的 Base,例如:0x00007FFC6EE70000。

    image.png

  2. 在 IDA 里重定位 (Rebase)
    菜单:Edit → Segments → Rebase program,输入刚才的 ModuleBase (0x00007FFC6EE70000),确认。如下图可见,IDA中所有代码地址空间和x64dbg保持完全一致,可以随时手动将x64dbg中的RIP地址在IDA中跳转。

    image.png


Summary

在实际的逆向工程战场上,这两款工具往往是协同作战的黄金搭档。

  • 用 IDA Pro 进行“战略分析”:先用 IDA 加载目标,通过静态分析和反编译,从宏观上把握程序的脉络,理清关键函数、数据结构和核心算法。所有的分析成果(重命名、注释)都会保存在你的 IDB 数据库中。
  • 用 x64dbg 进行“战术验证”:当需要验证某个关键逻辑、跟踪某个复杂算法的实时数据变化,或者动态地绕过某些检查时,就可以启动 x64dbg 进行动态调试。你可以利用 IDA 的分析结果,快速定位到需要下断点的地址。
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐