我开始使用 Ghidra,正在反编译我的一个简单程序。该平台是基于 ARM 的 Linux (ELF)。我在反编译的代码中发现了以下内容:
gTime._0_4_ = (undefined4)(time1 >> 0x20);
gTime._4_4_ = (undefined4)time1;
在这里,gTime
是一个全局的和time1
一个局部的。两者都应该是 64 位整数 ( uint64_t
)。我已经相应地设置了类型。该代码被设置的高比特gTime
到的高比特time1
和相同的用于低比特。有什么办法可以将其转换为:
gTime = time1
或者这里是否存在字节序问题?在某些地方,它也有类似的冗余:
uVar1 = CONCAT44(gTime, gTime._4_4)
我希望能够选择代码并将其“重构”为等效的形式。我唯一能找到的是“重新输入”功能,效果很好,但不是在这里。任何想法如何清理这段代码?