![](/user_photo/2706_HbeT2.jpg)
2 Задание к лабораторной работе
Выполнение работы предполагает получение исходного текста на ассемблере исполняемой программы. Для проверки правильности дизассемблирования полученная программа заново ассемблируется и проверяется работа повторно полученного исполнимого модуля.
1) Запустите дизассемблер SOURCER (sr.exe).
2) Ведите имя исполняемой программы вместе с его расширением (hello1.exe) и нажмите “Enter”.
3) Нажимая высвечивающиеся буквы, можно установить нужные опции. Нажмите O и введите имя листинга hello11.
4) Введите команду G для запуска процесса дизассемблирования.
5) Найдите в текущей директории листинг дизассемблированной программы (hello11.lst).
6) Запустите утилиту lst2asm.com, преобразующую листинг в ассемблерный текст. Нажав Ctrl^O просмотрите формат ее командной строки.
7) Наберите lst2asm hello11 и нажмите “Enter”. Найдите в текущей
директории новый файл hello11.asm.
8) Раскройте в текстовом редакторе файл hello11.asm и поставьте перед строкой “Error Target Assembler set to NONE, re-assembly not recommended” точку с запятой. Тем самым данную строку преобразовали в комментарий, который не будет восприниматься ассемблером tasm.exe.
9) Выполните реассемблирование программы hello11.asm с помощью ассемблера tasm.exe.
10) С помощью редактора связей tlink.exe воссоздайте исполняемую программу hello11.exe. Убедитесь в том, что она работает так же как оригинал.
11) Распечатайте файлы hello11.lst и hello11.asm. Сравните их с оригиналами hello1.lst и hello1.asm.
Контрольные вопросы
-
В каких случаях необходимо дизассемблирование выполняемого
файла?
2) Основные возможности пакета SOURCER?
-
В каком виде может быть представлен результат работы дизассем-
блера?
4) Какая информация выводится в листинг результата? Всегда ли возможно реассемблирование полученного текста программы?
5) Всегда ли возможно реассемблирование полученного текста про-
граммы?
Библиографический список
1 Пирогов В.Ю. Ассемблер для Windows. – 4-е изд. – СПб.: БХВ-Петербург, 2007. – 896 с.
2 Пирогов В.Ю. Ассемблер и дизассемблирование. – СПб.: БХВ-Петербург, 2006. – 464 с.
3 Касперски Крис, Рокко Ева. Искусство дизассемблирования. – СПб.: БХВ-Петербург, 2008. – 896 с.
4 Абель П. Язык Ассемблера для IBM PC и программирования /Пер. с англ. Ю.В. Сальникова. – М.: Высш. шк., 1992 – 447 с.
5 Пильщиков В.Н. Программирование на языке ассемблера IBM PC. – M.: Диалог – МИФИ, 1997.
6 Фролов А.В., Фролов Г.В. Аппаратное обеспечение IBM PC: В 2-х ч.: – М.: Диалог – МИФИ, 1998.
7 Нортон П., Соухэ Д. Язык ассемблера для IBM PC. – М.: "Компьютер", Финансы и статистика, 1992. – 352 с.
8 Сван Т. Освоение Turbo Assembler. – Киев: "Диалектика", 1996.
9 Юров В.И. Assembler. Учебник для вузов. 2-ое изд. – СПб: Питер, 2005. – 637 с
10 Юров В.И. Assembler: Специальный справочник. – СПб: Питер, 2000.
11 Юров В.И. Assembler: практикум. – Санкт-Петербург: Питер, 2003. – 400 с.
12 Пирогов В.Ю. Ассемблер на примерах. – СПб.: БХВ-Петербург, 2005. - 416 с.
13 Шнайдер О. Язык ассемблера для персонального компьютера фирмы IBM. Пер. с англ. под ред. Е.К. Масловского. – Москва: Мир, 1988. – 405 с.
14 Использование Turbo Assembler при разработке программ. – Киев: "Диалектика", 1994. – 288 с.