反汇编 - 为什么 CMP 指令将被比较的值乘以 2
逆向工程
拆卸
ollydbg
调试器
反汇编者
快手
2021-06-14 09:29:16
1个回答
该cmp指令不会将任何东西乘以 2。相反,在您的 ollydbg 屏幕截图中看到的这段代码是您附加的质量较差的源代码图像中以下行的实现:
if ((!key) || (key > (0x1337 * 2000)))
首先,在 address 中0x01051C09,key与 进行比较0。如果key等于则0跳转到0x01051C18。否则,key与 相比较0x0961DB0。如果key低于或等于0x0961DB0另一个跳跃。如果key是更大的比0x0961DB0执行继续0x01051C18。
正如您现在应该已经猜到的那样,0x0961DB0只是0x13372000 倍。
说明0x01051C18以0x01051C22呼吁实施wrong,制定eax正确的返回值(1),然后跳转到(我假设),其中函数序言和ret执行。
其它你可能感兴趣的问题

