当我想使用 IDA 在 Windows 上调试 .exe 时,我可以在 Windbg 或本地调试器之间进行选择。
有什么区别?
顺便说一句,如果我使用Windbg工具(windows软件)调试.exe文件,或者我使用IDA调试并选择Windbg调试器有什么区别吗?
当我想使用 IDA 在 Windows 上调试 .exe 时,我可以在 Windbg 或本地调试器之间进行选择。
有什么区别?
顺便说一句,如果我使用Windbg工具(windows软件)调试.exe文件,或者我使用IDA调试并选择Windbg调试器有什么区别吗?
Windbg 调试器插件是一个 IDA Pro 调试器插件,它使用 Windbg、Cdb 或 Kd 使用的 Microsoft 调试引擎 (dbgen)。
Windbg 插件与 IDA Pro 的 Win32 调试器插件非常相似,尽管如此,通过使用 Windbg 插件,您可以从命令行工具和调试工具附带的扩展中受益。
例如,可以键入“!chain”来查看注册的 Windbg 扩展:
“!gle”是另一个命令,用于获取给定 Win32 API 调用的最后一个错误值。
使用 Windbg 调试器插件的另一个好处是使用符号信息。通常,如果未设置调试符号路径,则模块窗口将仅显示导出的名称。例如kernel32.dll显示1359个名字:
让我们在运行IDA之前通过添加这个环境变量来配置一个符号源:
也可以在调试时直接设置符号路径:
然后输入“.reload /f”重新加载符号. 现在我们再试一次,注意到从 kernel32.dll 中检索到更多的符号名称:
现在我们有 5818 个符号!
也可以使用“x”命令快速搜索符号:(
在任何模块中查找包含“continue”一词的任何符号)[来源]
set _NT_SYMBOL_PATH=srv*C:\Temp\pdb*http://msdl.microsoft.com/download/symbols


对于问题的第二部分,如果您需要 IDA Pro 功能,请使用 IDA Pro 调试器(Windbg 调试器插件),否则使用 Windbg。
从 IDA 和 Windbg 如何连接到调试进程的角度来看,没有区别。从 IDA 和 Windbg 在程序运行时如何处理调试事件的角度来看,存在差异。有一段时间 IDA 在这方面做得很差,选择 windbg 方式是更好的选择。所以使用IDA本地调试器是可以的,除非你需要在调试时从IDA执行一些windbg命令。但是,如果您在调试时遇到问题,您可以尝试备份选项。