有人可以向我解释此c ++代码吗?

问题描述 投票:-2回答:1

我一直在老版本的c ++ mfc42应用程序上用雪人反编译器练习反编译。我很难理解循环中的这两行。

似乎正在将一个void对象添加到一个整数。然后乘以4。

有人能大致告诉我这两行中发生了什么吗?而考虑到MYOBJECT只是一个空值,这是什么条件?

我已经排除了易于理解的部分,以减少头痛!

while (!*reinterpret_cast<void>(MYOBJECT + 60) && 
       *reinterpret_cast<void>(MYOBJECT + 8) != NULL) {

    MYOBJECT_HANDLE = *reinterpret_cast<void>(MYOBJECT + 16);

    MYOBJECT_HANDLE_PTR_1 = 
                *reinterpret_cast<void>(*reinterpret_cast<void>(MYOBJECT + 24) + 
                reinterpret_cast<unsigned char>(*reinterpret_cast<void>(MYOBJECT + 96)) * 4);

}
c++ decompiling decompiler
1个回答
0
投票

这不是有效的C ++代码,因此它实际上没有做任何事情。

但是,如果这是一些输出破损代码的自动化工具的输出,我的猜测是,它们是某些对象(即某些字段)的偏移量。

没有更多信息,就无法解释它在做什么。

© www.soinside.com 2019 - 2024. All rights reserved.