Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Расторгуев С.П., Долгин А.Е., Потанин М.Ю. Как защитить информацию (пособие по борьбе с хакерами).doc
Скачиваний:
81
Добавлен:
02.05.2014
Размер:
673.28 Кб
Скачать

8. Проверка усвоенного

Если вы внимательно прочитали весь предшествующий материал, то

справиться с двумя головоломками будет несложно. Если же задания

оказались вам не под силу, вновь проштудируйте статьи.

ГОЛОВОЛОМКА 1

На рис. 8.1 приведена программа, которая не работает под

отладчиком в пошаговом режиме. Проверьте это, оттранслировав и

запустив ее, например, под Turbo Debugger. Нажимая клавишу F8 (без

захода в п/п), благополучно доберетесь до ее конца. Если же попробуете

пройти программу в потактовом режиме (клавиша F7), с заходом в

подпрограмму "DEL", то после выполнения оператора STOSW продолжение

будет невозможно. Почему?

ГОЛОВОЛОМКА 2

Программа на рис. 8.2 также не работает в пошаговом режиме, но

причина здесь иная. В чем тут дело?

ГОЛОВОЛОМКА 1

-------------------------------------------------------------¬

¦ cseg segment para public 'code' ¦

¦ assume cs:cseg ¦

¦ exam proc ¦

¦ start: ¦

¦ jmp frwd ¦

¦ del: ¦

¦ pushf ¦

¦ cld ¦

¦ mov ax,cs ¦

¦ mov es,ax ¦

¦ rep stosw ¦

¦ popf ¦

¦ ret ¦

¦ frwd: ¦

¦ push cs ¦

¦ pop ds ¦

¦ mov cx,12 ¦

¦ mov di,offset start ¦

¦ call del ¦

¦ mov dx,offset msg ¦

¦ mov ah,9 ¦

¦ int 21h ¦

¦ mov ax,4c00h ¦

¦ int 21h ¦

¦ msg db 'Hellow, boys!',0ah,0dh,'$' ¦

¦ exam endp ¦

¦ cseg ends ¦

¦ end start ¦

L-------------------------------------------------------------

рис. 8.1

ГОЛОВОЛОМКА 2

-------------------------------------------------------------¬

¦ TEXT: segment byte public 'CODE' ¦

¦ assume cs:TEXT ¦

¦ org 100h ¦

¦ ¦

¦ start: mov dx,offset prv ¦

¦ mov ah,9 ¦

¦ int 21h ¦

¦ db 2eh ¦

¦ pushf ¦

¦ pop ax ¦

¦ sahf ¦

¦ mov ah,9 ¦

¦ jb Glk ¦

¦ mov dx,offset mes1 ¦

¦ int 21h ¦

¦ mov ax,4c00h ¦

¦ int 21h ¦

¦ Glk: ¦

¦ mov dx,offset mes2 ¦

¦ int 21h ¦

¦ mov ax,4c01h ¦

¦ int 21h ¦

¦ ¦

¦ prv label byte ¦

¦ db 'dbtest',0ah,0dh,024h ¦

¦ ¦

¦ mes1 label byte ¦

¦ db 'Ok',0ah,0dh,24h ¦

¦ ¦

¦ mes2 label byte ¦

¦ db 'Trace',0ah,0dh,24h ¦

¦ ¦

¦ TEXT ends ¦

¦ end start ¦

L-------------------------------------------------------------

рис. 8.2