【发布时间】:2021-12-08 11:29:21
【问题描述】:
在分析 Ghidra 中的汇编列表时,我偶然发现了这条指令:
CALL dword ptr [EBX*0x4 + 0x402ac0]=>DAT_00402abc
我假设程序正在调用一个地址在DAT_00402abc 内的函数,我最初认为它是一个双字变量。事实上,当试图在 DAT_00402abc 所在的位置创建函数时,Ghidra 不会让我这样做。
反编译器向我显示这行代码来翻译该指令:
(*(code *)(&int2)[iVar2])();
所以我想知道,这是什么意思,程序应该如何处理这个调用? Ghidra有没有可能完全搞砸了?如果是这样,我应该如何解释该指令?
【问题讨论】:
标签: c x86 reverse-engineering decompiling ghidra