用 Rust 从零手写一个 Windows 调试器
Writing a Debugger from Scratch
我曾两次离开 Microsoft Debugger Platform 团队,每次离开后都忍不住重新写一个调试器。这次我选择用 Rust 从零开始构建 DbgRs,既是为了深入掌握 Rust 语言,也是为了让调试器的工作原理更易于理解。文章将带你从最基础的 Windows API 入手,通过 DebugActiveProcess 和 CreateProcessW 实现进程附加,利用 WaitForDebugEventEx 和 ContinueDebugEvent 构建核心的事件循环。虽然 Rust 代码细节不多,但核心概念和 API 逻辑适用于任何语言。我们将避开 DbgEng 等高级接口,专注于操作系统提供的底层调试机制,让你真正理解调试器如何挂起、检查和恢复目标进程。
我两次离开了 Microsoft Debugger Platform 团队,而每次离开后,我都开始编写自己的调试器。