简体   繁体   中英

how to simplify this pseudocode

I have this pseudocode in IDA but I don't understand the result when I compiled it

__int64 v17 = 507890351016; 
__int64 v20 = 0;
auto test = *(WORD*)(*(uintptr_t*)v17 + v20);

the output of test is 48 , can someone explain what's going here and what the equivalent in c++

v17 is a 64 bit integer, v20 is a 64 bit integer. v17 seems to be a pointer and whatever is at that address is being dereferenced to a DWORD type and stored in test. Because v20 == 0, the offset from v17+v20 is 0.

The result is

int64_t v17 = 507890351016;
DWORD test = *(DWORD*)v17;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM