Обратный инжиниринг - И 0FF
Я занимаюсь реверс-инжинирингом с помощью простого приложения crackme, а я отлаживаю его с помощью OllyDbg.
Я застрял в поведении инструкции И с операндом 0x0FF. Я имею в виду, что это эквивалентно в C++ для if (... = true).
Так что сбивает с толку то, что:
ECX = CCCCCC01 ZF = 1 И ECX, 0FF ### После инструкции ECX = 00000001 ZF = 0 ZF - должен быть активным
Я не знаю, почему результат регистра ECX 1 и ZF не активен.
AND => 1, 1 = 1 (те же операнды) В противном случае = 0
Может кто-нибудь объяснить мне это?
спасибо за помощь
1 ответ
Это немного И, поэтому в двоичном
1100 1100 1100 1100 1100 1100 0000 0001
AND 0000 0000 0000 0000 0000 0000 1111 1111
----------------------------------------
0000 0000 0000 0000 0000 0000 0000 0001