· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Что за фиговина?

Посл.отвђт Сообщенiе


Дата: Фев 29, 2004 04:24:41 · Поправил: Asterix

Встретил в проге:
@@:
  inc eax
  ror eax,1
  into
  jmp @B


Кто скажет зачем оно надо, а то у меня только догадки ;-)
есть предположение что это используется для обнаружения отладчика..


Дата: Мар 3, 2004 17:39:29

Типа в еах булевая переменная и в зависимости от значения
false/true устанавливается флаг переноса. инструкция into
вроде вызывает обработчик переполнения. Ну дальше ковырять этот обработчик. Чего тама она делает.


Дата: Мар 13, 2004 13:21:25

Чегой-то никто не сподобился меня поправить.
На си возможно так.
if (!BOOL_VAR) asm into;
Прерывание возникнет, если установлен флаг переполнения.
Он будет поднят инструкцией ror(при сдвиге тока на один разряд!), если в нашей переменной самой младший бит равен нулю.(false = 0; true = !false)
Если наш дебаггер обрабатывает прерыв. на переполнение.
Что ж...


Дата: Мар 13, 2004 15:07:32

For right rotates, the OF flag is set to the exclusive OR of the two most-significant bits of the result
Или младший бит равен 1 до ROR, или старший, тогда будет OF.

Если на входе четное число <7FFFFFFFh - попадаем в обработчик с установленным CF. Нечетное - infinite loop.
Есть еще варианты с числами > 80000000h, там CF будет сброшен.. Поэтому возможно этот флаг важен.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.109