Основы работы с SoftIceDelphi , Программа и Интерфейс , Исследование программОсновы работы с SoftIce
Вернемся теперь к установленному нами в первой статье SoftICE и попытаемся разобраться с интерфейсом этой замечательной программы и также узнаем команды, которые нам пригодятся в самое ближайшее время. Так как SoftICE работает в 0-м кольце защиты, получить изображение интерфейса программы практически невозможно. Поэтому все описание будет чисто текстовым. Если при установке программы Вы следовали нашим указаниям, то сейчас интерфейс отладчика состоит из следующих частей (назовем их окнами, потому, что с ними действительно можно работать как с окнами - включать, выключать, изменять размер):
Информация в этом окне меняется при изменении содержимого участка памяти, т.е. Вы всегда видите именно то, что находится в данный момент в памяти. Окно включается и выключается командой wd. Работа всех Windows-приложений основана на вызове API-функций. Это очень удобно и выгодно. Например, для вывода окна сообщения с некоторым текстом, достаточно вызвать функцию MessageBoxA с адресом выводимой строки в качестве аргумента. Замечательной особенностью SoftICE является то, что Вы можете устанавливать точки прерывания на вызовы API-функций. Установив точку прерывания на некоторую строку программы, Вы сообщаете SoftICE, что при достижении этой строки программа должна прервать свое выполнение и возвратить управление отладчику. Например, Вы установили точку прерывания на выполнение команды по адресу 40А00020, а затем запускаете программу с адреса 40А00000. Дойдя до строки с адресом 40А00020, программа прервется, управление вновь вернется в SoftICE, и Вы сможете узнать содержимое регистров процессора, участков памяти, а также, при необходимости, что-то изменить. Точка прерывания на вызов API-функции устанавливается точно так же, как и не выполнение команды по определенному адресу. При вызове функции программа прерывается в самом ее начале, и после этого Вы можете выполнить необходимые Вам действия. Обычно точку прерывания на вызов API-функции устанавливают, когда хотят узнать, из какого места программы она вызывается. Допустим, в программе имеется следующий фрагмент:
Вы точно знаете, что вызывается функция MessageBoxA, но не знаете, что это происходит по адресу 40200100h. Для того, чтобы это выяснить мы должны проделать следующее:
Мы описали лишь незначительную часть команд SoftICE. Остальные подробно рассмотрим по мере их использования в наших следующих исследованиях конкретных программ. Что ж, мы уже немного освоились в SoftICE и вплотную подошли к необходимости использования дизассемблера. Без него никакого серьезного исследования программы Вам провести не удастся. Наш следующий рассказ о IDA Pro. В этой статье описывается основные элементы интерфейса отладчика SoftICE, включающие окно регистров, окно данных, окно кода и окно команд, а также способ установки точек прерывания на вызовы API-функций. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
|||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |