BSWAP 和 CMP 作为反调试的混淆?

逆向工程 反调试
2021-06-13 08:30:19

我正在尝试附加调试一个具有“反调试”功能的程序。当逐步通过时,它似乎逐步通过了最终只是循环的 call 和 jmp 命令的迷宫。循环仅在逐行执行并且我试图理解它时发生。

不知道是不是加了混淆,为什么会出现这样的行?

014D658C   0FCA    BSWAP EDX
014D658E   0FCA    BSWAP EDX

如果我理解正确,BSWAP 只会反转位,但连续两次应该保持 EDX 寄存器不变。我还注意到其他奇怪的事情,比如比较寄存器,然后似乎对结果没有做任何事情(之后没有跳转调用或 setcc 或类似的东西)

014D657C   66:81FF 8408     CMP DI,884
014D6581   30D8             XOR AL,BL
014D6583   8D96 1A30A4DD    LEA EDX,DWORD PTR DS:[ESI+DDA4301A]
0个回答
没有发现任何回复~