深入解析Ghidra反汇编:导航、栈帧与搜索技巧
1. 反汇编导航
Ghidra将众多常见逆向工程工具的功能集成到其CodeBrowser显示界面中,导航是掌握Ghidra的关键技能之一。与静态反汇编列表(如objdump提供的)只能上下滚动不同,Ghidra具备出色的导航功能。它不仅提供了类似文本编辑器和文字处理器的标准搜索功能,还能生成并显示全面的交叉引用列表,这些交叉引用就像网页超链接一样,大多数情况下,只需双击就能导航到感兴趣的位置。
1.1 名称和标签
程序反汇编时,每个位置都会被分配一个虚拟地址。为了便于记忆和引用,早期程序员会为程序位置分配符号名,Ghidra延续了这一传统,为虚拟地址创建标签,并允许用户修改和扩展标签集。在导航时,名称和标签在很大程度上可以互换,它们都代表导航目标。Ghidra在自动分析阶段会使用二进制文件中的现有名称或根据位置的引用方式自动生成名称。显示在反汇编窗口中的标签类似于网页超链接,但不会突出显示,通常需要双击才能跳转。
1.2 导航目标
Ghidra将以下三种显示实体视为导航目标:
- 命名符号 :如Listing窗口中用实心箭头指示的符号,双击可使Ghidra将Listing显示(以及所有关联窗口)重新定位到所选位置。
- 交叉引用 :用虚线箭头表示,双击交叉引用地址可跳转到引用位置。鼠标悬停在可导航对象上会显示一个弹出窗口,展示目标代码。
- 十六进制值 :如果显示的十六进制值序列代表二进制文件中的有效虚拟地址,双击该值可将反汇编窗口重新定位到
Ghidra反汇编核心技巧解析
超级会员免费看
订阅专栏 解锁全文
2485

被折叠的 条评论
为什么被折叠?



