如何简化这个伪代码
how to simplify this pseudocode
我在 IDA 中有这个伪代码,但我不明白编译时的结果
__int64 v17 = 507890351016;
__int64 v20 = 0;
auto test = *(WORD*)(*(uintptr_t*)v17 + v20);
测试的输出是 48,谁能解释一下这里发生了什么以及 c++
中的等价物
v17是64位整数,v20是64位整数。 v17 似乎是一个指针,该地址上的任何内容都被取消引用为 DWORD 类型并存储在测试中。因为v20 == 0,所以相对于v17+v20的偏移量为0.
结果是
int64_t v17 = 507890351016;
DWORD test = *(DWORD*)v17;
我在 IDA 中有这个伪代码,但我不明白编译时的结果
__int64 v17 = 507890351016;
__int64 v20 = 0;
auto test = *(WORD*)(*(uintptr_t*)v17 + v20);
测试的输出是 48,谁能解释一下这里发生了什么以及 c++
中的等价物v17是64位整数,v20是64位整数。 v17 似乎是一个指针,该地址上的任何内容都被取消引用为 DWORD 类型并存储在测试中。因为v20 == 0,所以相对于v17+v20的偏移量为0.
结果是
int64_t v17 = 507890351016;
DWORD test = *(DWORD*)v17;