Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Не ломается отладчик


Автор: GQU 31.1.2015, 14:30
Програмка из учебника калашникова
Программа в обработчик 3-го прерывания в начало вставляет инструкцию iret
Почему когда я нажимаю шагнуть в отладчике, он останавливает программу на следующей инструкции, хотя программа должна выполниться до инструкции int 20
Код

;                   === Защита от отладчиков ===
 
; Способ первый:
; Занести по адресу обработчика 03h прерывания команду IRET
 
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
 
Begin:
       xor ax,ax
       mov es,ax        ;Обнуляем ES
 
       mov bx,es:[03h*4]    ;BX - смещение адреса 03 прерывания
       mov es,es:[03h*4+2]  ;ES - сегмент адреса 03 прерывания
 
       mov byte ptr es:[bx],0CFh ;<===Отладчик "глючит" здесь
                 ;Заносим по адресу ES:BX инструкцию IRET (0CFh)
 
       mov ah,9
       mov dx,offset Message
       int 21h
 
       int 20h
 
Message db 'DBG16_01.COM - порядок!$'
 
CSEG ends
end Begin

Автор: _zorn_ 1.2.2015, 11:23
Ставь виртуалку с досом.

Автор: GQU 1.2.2015, 14:59
Цитата

Ставь виртуалку с досом. 

а dosBox не пойдет чтоли?
через виртуалку чистый дос запустил, такая же фигня

Автор: tzirechnoy 1.2.2015, 17:09
Вероятно, этот отладчик писали не идиоты.

Автор: GQU 1.2.2015, 17:11
Цитата

Вероятно, этот отладчик писали не идиоты. 

может я не так что то делаю, просто охота обойти защиту, посмотреть как это

Автор: ФедосеевПавел 1.2.2015, 23:09
Отладчик может работать в protected mode и отлаживать программу из  real mode.
Это почти аналог запуска программы из виндовс. Т.е. программа думает, что может всё, но отладчик контроллирует свои прерывания.
Это противостояние брони и снаряда.
Поищи другие антиотладочные трюки. Или отладчик по-древнее.
Попробуй вместо td или asd штатный в DOS debug.exe. Только почитай как с ним управляться.

Автор: tzirechnoy 2.2.2015, 06:07
Цитата
Отладчик может работать в protected mode и отлаживать программу из  real mode.


Да, собственно, для таких примитивных приколов и этого не требуется. Что уж проще -- разобрать следующую инструкцыю и узнать, не пишэт ли она куда не надо или не выполняет чего недозволенного.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)