在 Ghidra 中反汇编 ARM 二进制文件时,我经常看到这些警告:
/* WARNING: Could not recover jumptable at 0x0747c198. Too many branches */
/* WARNING: Treating indirect jump as call */
他们的意思是什么?为了理解这些问题的原因,我应该学习哪些基本的架构概念?
这是一个真实程序的例子,在 Ghidra 的反汇编中看到:
if (param_2 == 0x78) {
/* WARNING: Could not recover jumptable at 0x0747c198. Too many branches */
/* WARNING: Treating indirect jump as call */
uVar3 = (*DAT_0747c19c)();
return uVar3;
}