当我使用 Ghidra 反汇编 .so 文件时,什么是未定义函数?

What is undefined function when I use Ghidra to dissemble a .so file?

我现在正在尝试分解一个 .so 文件,我发现了一个奇怪的部分:

然后跟随 FUN_004d9f38 引导我:

任何人都可以帮助我理解什么是所谓的 undefined __cdecl FUN_004d9f38(void),特别是什么是 undefinde 函数。

如上代码所示。第一张图的代码使用跳转指令跳转到FUN_004d9f38,但是FUN_004d9f3867的无效指令代码。该程序如何才能继续正常运行?

undefined 是一种特殊的数据类型,Ghidra 使用它来标记类型还不是 known/defined 的位置。如果您右键单击函数名称和 Edit Function,您应该会看到这样的 window,这使它更清晰:

如果您将列表中的数据类型更改为例如qword 你得到 qword FUN_1000081e0 而不是 undefined FUN_1000081e0: