Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的EAX寄存器包含该xxxxxx9D值,并且我有以下汇编代码:
EAX
xxxxxx9D
C0C8 14 --> ROR AL,14
对我来说,这意味着EAX32 位值的最后 8 位按位旋转 14 mod 8 = 6 个位置
0x9D = b1001 1101
将转化为
b0111 0110 = 0x76
但是,OllyDbg 告诉我EAX = xxxxxxD9,这意味着 EAX 已按位旋转了 4 位!
EAX = xxxxxxD9
我哪里错了?
您正在尝试将 8 位寄存器旋转 20 个位置。这有点多,旋转 8 会产生相同的值。旋转 9 与旋转 1 相同。等等。因此,处理器将旋转 20 mod 8 = 4 个位置。
发布您的完整代码,其中:
mov al,$9d ror al,14
正如预期的那样,我得到了 76。
编辑如果您轮换 14 美元的位置,您将获得 d9。