РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты в разделе Номер выпуска: | 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.х
Теперь исследуем этот файл prog10o.com в отладчиках (AFD, Code View, Turbo Debugger, Debug). Перед тем, как, что-то иследовать, будем иследовать то, что в скобках, а именно:
AFD, Code View, Turbo Debugger, Debug Возмем к примеру 3-и из 4-х(названия видны в заголовках):
 Как видно стартовый код почти аналогичен(за исключения нескольких байтов), четвертый проверять будем? Везде есть команда rep movsb. Что она делает, она копирует таблицу векторов, чтобы потом показать Вам то, что Вы хотите видеть. Поверите или проверите.
Ещё обратите внимание, что в аналогичных командах название переменных(по сути это размер перменной и её адрес в сегменте, ну так IDA это интерпретирует) отличаются - это говорит, что в коде они находятся в разных местах. Точно так-же если в разных кодах, две подпрограммы поменять местами перед компиляцией, то адреса вызова их изменятся. Поверите или порверите.
Теперь самое интересное: старые вектора можно получить с помощью int 21 | 35h, вот его и будем искать. Установив маркер поиска в начало листинга, Вы найдете много адресов типа хх35 или х35х, много байт данных ввиде строк, но интерес представляют последовательности
 B8 xx 35 CD 21 Записываем, чем интересуется отладчик.
После этого такой поиск проводим с 25, обращая внимание на последовательность байт, аналогичным командам:
mov ax,25xxh xxx xxx int 21h Записав эти номера Вы будете знать, что перхватывает и обрабатывает отладчик, а также адреса тех самых обработчиков, их код
90 90 E8 E0 00 2E FF 2E 48 10 90 90 E8 D0 00 2E или
9C 2E FF 1E 3E 00 50 55 9C FA 2E 80 3E 42 00 00 Думаю, что совпадения Вы найдете.
Отладчики не смотря на свою одинаковую цель, написаны по разному, используют разные методы отладки, прячут себя от программ разному, при этом позволяя иследовать себя или нет.
Если Вы пошагам зайдете в прерывание, Вы попадете в сегмент Fxxx. В префиксе программы указан альтернативный вызов функций ДОС(он предназначен для совместимости с СР/М) который также как и 00A7:107C, является надстройкой над самими функциями ДОС, пройдя обоими путями Вы попадете в нужную функцию.
Удачи!  | Консультировал: Зенченко Константин Николаевич (Старший модератор) Дата отправки: 14.12.2019, 00:35 5 СПАСИБО ЗА ПОТРАЧЕННОЕ НА МЕНЯ ВРЕМЯ! Честно говоря, не "взять" мне пока этот материал, оставлю его на будущее! Если можно, дайте пожалуйста ссылку, на "Руководство" - как работать в IDA. ----- Дата оценки: 15.12.2019, 05:36 | Рейтинг ответа: +1 |
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий