为了在分析过程中为您提供帮助,IDA会跟踪的程序不同部分之间 交叉引用(或 简称为 外部参照 )。 您可以检查它们,导航它们,甚至添加自己的视图以扩大分析范围并帮助IDA或反编译器。
有两类交叉引用:
交叉引用类型可以用单字母代码表示。
在图形视图中,代码交叉引用显示为代码块之间的边(箭头)。 您可以通过视觉上的箭头或双击来导航。
在文本模式下,对当前地址的交叉引用将作为注释打印在该行的末尾。 默认情况下,最多打印两个参考。 如果还有更多,则显示省略号(...)。 您可以在选项>常规…交叉引用选项卡中增加打印的交叉引用数量。
注释中仅显示明确的参考; 流交叉引用在文本模式下不显示。 但是, 用虚线表示 没有 流程交叉引用(代码执行流程的末尾)。 通常在无条件跳转或返回之后可以看到它,但是在调用非返回函数之后也可以看到它。
要导航到交叉引用的来源,请双击或在注释中的地址上按Enter。
“X”这可能是最常见和最有用的快捷方式:按此快捷方式可查看 的 的交叉引用列表 光标处 标识符 。 从列表中选择一个项目即可跳转到该项目。 该快捷方式不仅适用于反汇编地址,而且适用于 堆栈变量 (函数中)以及 结构 和 枚举成员 。
“Ctri”–和“X” 的工作原理类似,但是 显示 的交叉引用列表 不管光标在行中的什么位置,它都会 当前地址 。 例如,当您需要将当前函数的调用者列表放在其第一条指令上时,该列表很有用。
另一方面,显示 中的交叉引用列表 当前地址 。 从单个位置到多个其他位置有多个交叉引用是一种罕见的情况,但是在其中有用的一种情况是 开关(表跳转):在间接跳转指令上使用此快捷方式可以使您快速查看并跳转到任何一个开关案件。
如果您忘记了快捷方式,或者只是喜欢使用鼠标,则可以在“跳转”菜单(有时在上下文菜单)中找到相应的菜单项。
以上就是关于交叉引用的相关内容了,想要获取更多信息,欢迎访问城东书院网站。