Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

solowey
Статус: Бакалавр
Рейтинг: 149
∙ повысить рейтинг »
cain52
Статус: 3-й класс
Рейтинг: 1
∙ повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 0
∙ повысить рейтинг »

∙ Assembler

Номер выпуска:1754
Дата выхода:17.12.2019, 20:45
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:79 / 25
Вопросов / ответов:1 / 1

Консультация # 197337: Здравствуйте! Уважаемые эксперты, можете ли объяснить, почему отладчики AFD, CodeView, Turbo Debugger показывают разную информацию при сохранении адреса обработчика 21h прерывания (да очевидно и любого другого прерывания)? Я об использовании функции 35h прерывания 21h. Более подробно "проблема" выведена в прилагаемом файле "Пи...

Консультация # 197337:

Здравствуйте!
Уважаемые эксперты, можете ли объяснить, почему отладчики AFD, CodeView, Turbo Debugger показывают разную информацию при сохранении адреса обработчика 21h прерывания (да очевидно и любого другого прерывания)? Я об использовании функции 35h прерывания 21h.
Более подробно "проблема" выведена в прилагаемом файле "Письмо экспертам от 07.12.2019г..doc"

Дата отправки: 07.12.2019, 20:35
Вопрос задал: kerenskyaf (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Старший модератор):

Здравствуйте, kerenskyaf!

Ну раз Вы занялись анализом и хотите понять что к чему. Скачайте IDA Pro, сейчас 7.х. Но показывать я буду на 4.х

© Цитата: kerenskyaf
Теперь исследуем этот файл prog10o.com в отладчиках (AFD, Code View, Turbo Debugger, Debug).

Перед тем, как, что-то иследовать, будем иследовать то, что в скобках, а именно:
© Цитата: kerenskyaf
AFD, Code View, Turbo Debugger, Debug

Возмем к примеру 3-и из 4-х(названия видны в заголовках):
smile

Как видно стартовый код почти аналогичен(за исключения нескольких байтов), четвертый проверять будем?
Везде есть команда rep movsb. Что она делает, она копирует таблицу векторов, чтобы потом показать Вам то, что Вы хотите видеть.
Поверите или проверите.

Ещё обратите внимание, что в аналогичных командах название переменных(по сути это размер перменной и её адрес в сегменте, ну так IDA это интерпретирует) отличаются - это говорит, что в коде они находятся в разных местах.
Точно так-же если в разных кодах, две подпрограммы поменять местами перед компиляцией, то адреса вызова их изменятся.
Поверите или порверите.

Теперь самое интересное: старые вектора можно получить с помощью int 21 | 35h, вот его и будем искать.
Установив маркер поиска в начало листинга, Вы найдете много адресов типа хх35 или х35х, много байт данных ввиде строк, но интерес представляют последовательности

B8 xx 35 CD 21
Записываем, чем интересуется отладчик.

После этого такой поиск проводим с 25, обращая внимание на последовательность байт, аналогичным командам:
Код (Assembler) :: выделить код
mov	ax,25xxh
xxx xxx
int	21h

Записав эти номера Вы будете знать, что перхватывает и обрабатывает отладчик, а также адреса тех самых обработчиков, их код
© Цитата: kerenskyaf
90 90 E8 E0 00 2E FF 2E 48 10 90 90 E8 D0 00 2E

или
© Цитата: kerenskyaf
9C 2E FF 1E 3E 00 50 55 9C FA 2E 80 3E 42 00 00

Думаю, что совпадения Вы найдете.
smile

Отладчики не смотря на свою одинаковую цель, написаны по разному, используют разные методы отладки, прячут себя от программ разному, при этом позволяя иследовать себя или нет.

Если Вы пошагам зайдете в прерывание, Вы попадете в сегмент Fxxx. В префиксе программы указан альтернативный вызов функций ДОС(он предназначен для совместимости с СР/М) который также как и 00A7:107C, является надстройкой над самими функциями ДОС, пройдя обоими путями Вы попадете в нужную функцию.

Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 14.12.2019, 00:35

5
СПАСИБО ЗА ПОТРАЧЕННОЕ НА МЕНЯ ВРЕМЯ!
Честно говоря, не "взять" мне пока этот материал, оставлю его на будущее!
Если можно, дайте пожалуйста ссылку, на "Руководство" - как работать в IDA.

-----
Дата оценки: 15.12.2019, 05:36

Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное