有时候IDA生成的伪代码让人莫名其妙
v8 = (signed int)&loc_100010; //ida
v8 = 0x100010; //actual code
当它只是一个值时,这还不错,但有时成员变量的偏移量也会以这种方式扭曲
v2 = a1 + (_DWORD)&loc_2043B90 - 33831600); //ida
v2 = a1 + 224; //actual offset
这导致了糟糕的可读性,对于数组来说更糟。有没有办法解决这个问题?
这在浮点数中经常发生
v63 = **(float **)((char *)&loc_15D9503 + 33831601)
我应该补充一下这是一个 MACH-O x86 二进制文件(如果这很重要)