问题描述
我现在试图反汇编一个 .so
文件,但我发现了一个奇怪的部分:
然后按照 FUN_004d9f38
引导我:
谁能帮我理解什么是所谓的undefined __cdecl FUN_004d9f38(void)
,特别是什么是undefinde
函数。
如上面的代码所示。第一张图的代码使用跳转指令跳转到FUN_004d9f38
,但是FUN_004d9f38
是无效的67
指令代码。该程序如何才能继续正常工作?
解决方法
undefined
是一种特殊的数据类型,Ghidra 用它来标记类型未知/尚未定义的位置。如果您右键单击函数名称和 Edit Function
,您应该会看到一个像这样的窗口,使这一点更加清晰:
如果您将列表中的数据类型更改为例如qword
你得到 qword FUN_1000081e0
而不是 undefined FUN_1000081e0
: