Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012- СИСПРОГ на МАСМ.doc
Скачиваний:
21
Добавлен:
09.11.2019
Размер:
553.47 Кб
Скачать

6.4Выполнение работы

  1. Откройте отладчик OllyDbg. Если требуется, проведите начальную настройку – выберите цвета фона и текста, включите показ переходов, установите плагин CommandBar и проверьте его работу (Alt-F1). Для удобства трассировки выполните подсветку переходов и вызовов процедур: Options – Appearance – Code highlighting – Highlighting Jumps’n’calls – Restore defaults. У нас вызовы процедур подсветились цианом, а команды переходов – желтым. Возможно, в ваших настройках цвета окажутся другими.

  2. Откройте в отладчике программу MASM32 \ tutorial \ console \ demo1 \ hello.exe. Обратите внимание на начальный адрес первой команды программы – 00401000. В дальнейшем вы узнаете, что в локальном адресном пространстве программы, выполняемой в защищенном режиме, он всегда такой.

  3. Выделите мышью во фрейме кода все команды до адреса 401090 включительно (всю программу). Скопируйте выделенное в буфер обмена и сохраните в текстовом файле «фрейм кода» для отчета. Аналогично создайте текстовые копии фреймов регистров, стека и дампа памяти, они войдут в отчет.

  4. Включите (если они выключены) заголовки колонок во фрейме кода. ПКМ по фрейму кода – Appearance – Show bar. Обратите внимание, что после этого команда Show bar заменилась на команду Hide bar, которой эти заголовки при желании можно скрыть.

  5. Важная часть работы по освоению новой программы – это «смотреть и понимать». Приступим к этому. Просмотрите на колонку Hex dump во фрейме кода. Запишите в отчет работы, как отладчик выделил группы команд со смещениями 00401000…0040100C и 00401014… 00401047? Сформулируйте и запишите в отчет обоснованное предположение, что означают эти элементы выделения частей кода.

  6. Что содержится в колонке Comment против команд со смещениями 40101A… 40101С и 40102F…40103E? Сформулируйте и запишите в отчет обоснованное предположение, что означают эти элементы выделения частей кода.

  7. Изучим, как в отладчике показываются переходы. Включите через Alt-F1 командную строку и введите bp 401050. Установилась точка остановки на заданном смещении. Запишите, как это проявилось визуально.

      1. Выполните F9 – выполнение до точки остановки.

      2. Нажимая F8, наблюдайте, как происходит выполнение с показом переходов. Проходя через команды, помеченные в колонке Hex dump символами «˅», «˄» или «˃», обращайте внимание на то, какие сообщения появляются в области 5 (рис. 6.1). Запишите наблюдаемое в отчет. Как эти сообщения связаны с визуальными символами показа выполняемого (или не выполняемого) перехода? Описать в отчете.

  1. Трассировка программы. Выполните рестарт программы через Ctrl-F2. Нажимая F8, выполните программу до конца. Сколько команд Call вы при этом встретили? Если не успели сосчитать, повторите трассировку.

  2. Повторите трассировку с заходом в процедуры (F7) с подсчетом встретившихся команд Call. Объясните в отчете причины столь большого расхождения результатов трассировки по F8 и F7. Повторите F7-трассировку еще раз, но постарайтесь теперь отследить наибольшую глубину вложенности CALL-вызовов в этой простой программе.

  3. Сделайте выводы по работе, оформите отчет.