深入理解Ghidra反汇编:基础技能与实战指南
1. 反汇编导航
在逆向工程中,掌握反汇编工具的导航技巧至关重要。Ghidra作为一款强大的逆向工程工具,将许多常见逆向工程工具的功能集成到其CodeBrowser显示界面中。与像objdump这样的静态反汇编工具相比,Ghidra提供了卓越的导航功能。静态反汇编列表除了上下滚动外,几乎没有其他固有的导航能力,即使是最好的文本编辑器提供的集成grep式搜索,也很难在这样的列表中进行导航。而Ghidra不仅提供了我们在文本编辑器或文字处理器中熟悉的标准搜索功能,还开发并显示了一个全面的交叉引用列表,这些交叉引用就像网页超链接一样。在大多数情况下,只需双击即可导航到感兴趣的位置。
1.1 名称和标签
当程序被反汇编时,程序中的每个位置都会被分配一个虚拟地址。虽然我们可以通过提供感兴趣位置的虚拟地址来导航到程序中的任何位置,但要在脑海中记住这些地址并非易事。早期程序员为了解决这个问题,为程序位置分配了符号名称,这使得程序的读写变得更加容易。Ghidra延续了这一传统,为虚拟地址创建标签,并允许用户修改和扩展标签集。
在导航方面,名称和标签虽然在使用上存在一些差异(例如,函数有名称,并且在Ghidra符号树中与标签位于不同的分支),但它们在很大程度上是可以互换的,因为它们都代表导航目标。Ghidra在自动分析阶段通过使用二进制文件中的现有名称(如果可用)或根据二进制文件中位置的引用方式自动生成名称来生成符号名称。反汇编窗口中显示的任何标签都类似于网页上的超链接,是潜在的导航目标。不过,这些标签与标准超链接有两个主要区别:一是标签没有以任何方式突出显示以表明可以跟随;二是Ghidra通常需要双击才能跟随,而传统超链接只
超级会员免费看
订阅专栏 解锁全文
38

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



