; Эта программа демонстрирует способ защиты от
; отладки, основанный на использовании архитектурной
; особенности процессоров 8086, 80286, 80386, 80486 -
; наличии внутреннего конвейера команд

		  TITLE   BUG

		  .MODEL  tiny

		  .STACK  100h

		  .DATA

msg     DB "Программа работает под упралвением отладчика!", 13, 10, "$"

		  .CODE
		  .STARTUP

; Запрещаем прерывания

		  cli

; Вызываем программу проверки

		  call _TEST

; Разрешаем прерывания

		  sti

		  .EXIT   0

; -------------------------------

; Программа проверки

		  _TEST PROC near

; Выполняем модификацию команды с меткой next.
; Вместо команды ret записываем команду nop.

		     mov    BYTE PTR next, 90h
	next:   ret

; Если можификация не произошла, это означает, что
; программа выполняется под управлением отладчика.
; Выводим сообщение о работе под контролем отладчика.

		     mov     ah, 9h
			  mov     dx, OFFSET msg
		     int     21h

		     ret

		 _TEST  ENDP

		  END

