IDA技巧(85)源代码级调试

admin 2024年12月9日14:39:59评论30 views字数 1137阅读3分47秒阅读模式

尽管IDA最初是为了在“黑箱”模式下分析二进制文件而创建的,即没有任何符号或调试信息,但它确实具备在可用时使用这些信息的能力。

调试器功能最初也被优化用于在汇编级别调试二进制文件,但如今也可以处理源代码。

源代码级调试

源代码级调试默认是启用的,但可以通过调试器菜单中的“使用源代码级调试”选项或调试工具栏上的按钮手动关闭或打开。

IDA技巧(85)源代码级调试

如果输入文件中有IDA支持格式的调试信息(例如PDB或DWARF),在调试开始时会自动使用这些信息,并且执行的代码被调试信息覆盖。

IDA技巧(85)源代码级调试

源代码文件

如果源文件存在于原始位置,IDA会在单独的源代码视图窗口中打开它们,并高亮显示当前执行的行。汇编指令仍然显示在IDA视图中,您可以继续独立于源代码视图进行分析。请注意,当步进到与源代码无对应的指令时(例如编译器辅助函数或辅助代码如序言或尾声指令),IDA可能会自动切换到反汇编。

IDA技巧(85)源代码级调试

当在反汇编中步进后,执行返回到源代码覆盖的区域时,您可以通过调试器菜单中的“切换到源代码”操作(也可在上下文菜单和工具栏中使用)要求IDA再次显示相应的源代码。即使是远离当前执行点的代码,也可以使用此操作。

IDA技巧(85)源代码级调试

源路径映射

有时,与二进制文件对应的源代码可能存在,但位置与调试信息中记录的不同(例如,您可能在不同的机器上调试二进制文件,甚至是从不同的操作系统远程调试)。未在预期位置找到的文件会在输出窗口中打印:

IDA技巧(85)源代码级调试

使用“选项 > 源路径...”可以为IDA设置映射,以便在新位置找到源文件。

IDA技巧(85)源代码级调试

局部变量

当调试信息包含局部变量的信息时,IDA可以使用它来显示它们的值。在源代码视图中将鼠标悬停在变量上时,会显示一个简短的单行版本。

IDA技巧(85)源代码级调试

对于更复杂的对象,可能更方便打开专用视图,在那里可以展开和检查字段和子对象。此视图可通过菜单“调试器 > 调试器窗口 > 局部变量”访问。

IDA技巧(85)源代码级调试

监视

除了局部变量,您还可以仅监视所需的特定变量,而不是所有局部变量,或全局变量的值。此视图可通过“调试器 > 调试器窗口 > 监视视图”打开。可以使用Ins或上下文菜单添加变量。

IDA技巧(85)源代码级调试

调试伪代码

即使您没有代码的调试信息,但有反编译器,也可以像调试源文件一样调试伪代码。如果启用了源代码级调试,但没有特定代码片段的调试信息,IDA会自动使用伪代码。您也可以在调试期间随时使用常用的Tab热键切换到伪代码。在调试伪代码时,局部变量、监视和源代码级断点与“真实”源代码一样可用。

IDA技巧(85)源代码级调试

学习资源

立即关注【二进制磨剑】公众号

👉👉👉【IDA 技巧合集】👈👈👈
👉👉👉【Github 安全项目合集】👈👈👈
学习零基础学习 IDA 逆向
【课程完结!内容揭秘!】7 天打造 IDA 9.0 大师:从零基础到逆向精英
🔥🔥🔥 新课抽奖中 🔥🔥🔥🔥
【新课来袭】第 2 期-Android 逆向内核攻防

原文始发于微信公众号(二进制磨剑):IDA技巧(85)源代码级调试

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月9日14:39:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA技巧(85)源代码级调试https://cn-sec.com/archives/3480388.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息