x64dbg调试动态库并与IDA同步
它是一组插件,用于将调试会话(WinDbg/GDB/LLDB/OllyDbg/OllyDbg2/x64dbg)与反汇编器(IDA/Ghidra/Binary Ninja)同步。其基本理念很简单:兼顾静态分析和动态分析的优势。如果不想部署ret-sync插件,也不需要实时同步地址信息,还有个简洁高效的地址对应方法。实现这个功能的前提是在x64dbg和IDA Pro上部署插件ret-sync。在实际的
Contents
Introduction
x64dbg是一款为 Windows 平台打造的开源、免费且强大的用户态调试器。它专为逆向工程和恶意软件分析而设计,特别是对于那些没有源代码的可执行文件。在静态逆向分析方面IDA Pro有着伪码可读性高的优势,但动态调试方面x64dbg则更胜一筹,优点如下:
- 启动快,操作流畅:界面布局直观,快捷键(F2/F7/F8/F9)与OllyDbg一致,调试体验丝滑。
- 插件生态丰富:拥有如 ScyllaHide(反反调试)、XAnalyzer 等大量插件,功能扩展性极强。
- 专注于动态分析:所有功能都为运行、跟踪、修改程序状态而优化。
本文会简介x64dbg基本使用,并如何与IDA Pro伪码联动,进行调试之前需要部署反调试插件
ScyllaHide和同步插件ret-sync,部署方式可参考链接。
x64db逆向调试
x64db逆向调试dll
- Attach到主进程
首先要运行你的主进程,这里选取Total Commander工具作为例子,随意开启个Total Commander窗口,再运行x64dbg按下图步骤依次选择"文件"->"附加"->"TOTALCMD64"

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


- 实际单步调试
添加断点后再返回Total Commander界面就会立即命中预埋断点,并可以继续单步调试执行
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
- 先通过IDA Pro 9.2打开我们正在调试的动态库winfsp-x64.dll,选择"Edit" ->"Plugins" ->"ret-sync"将两个同步选项勾上。

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


x64db与IDA Pro简易地址对应方法
如果不想部署ret-sync插件,也不需要实时同步地址信息,还有个简洁高效的地址对应方法。
-
IDA 是静态分析:地址基于 文件头里的 ImageBase。
-
x64dbg 是动态调试:地址基于 运行时模块基址 (ModuleBase)。
所以要对齐,必须保证 IDA 的基址和运行时的基址一致。
- 在 x64dbg 里找到动态库基址
打开 Memory Map (Alt+M),找到调试目标动态库(我们这里是winfsp-x64.dll), 记录它的 Base,例如:0x00007FFC6EE70000。
- 在 IDA 里重定位 (Rebase)
菜单:Edit → Segments → Rebase program,输入刚才的 ModuleBase (0x00007FFC6EE70000),确认。如下图可见,IDA中所有代码地址空间和x64dbg保持完全一致,可以随时手动将x64dbg中的RIP地址在IDA中跳转。
Summary
在实际的逆向工程战场上,这两款工具往往是协同作战的黄金搭档。
- 用 IDA Pro 进行“战略分析”:先用 IDA 加载目标,通过静态分析和反编译,从宏观上把握程序的脉络,理清关键函数、数据结构和核心算法。所有的分析成果(重命名、注释)都会保存在你的 IDB 数据库中。
- 用 x64dbg 进行“战术验证”:当需要验证某个关键逻辑、跟踪某个复杂算法的实时数据变化,或者动态地绕过某些检查时,就可以启动 x64dbg 进行动态调试。你可以利用 IDA 的分析结果,快速定位到需要下断点的地址。
更多推荐



所有评论(0)