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

问题描述

我现在试图反汇编一个 .so 文件,但我发现了一个奇怪的部分:

enter image description here

然后按照 FUN_004d9f38 引导我:

enter image description here

谁能帮我理解什么是所谓的undefined __cdecl FUN_004d9f38(void),特别是什么是undefinde函数

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

解决方法

undefined 是一种特殊的数据类型,Ghidra 用它来标记类型未知/尚未定义的位置。如果您右键单击函数名称和 Edit Function,您应该会看到一个像这样的窗口,使这一点更加清晰:

enter image description here

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

enter image description here