Лабораторная работа №12 / лаб1
.docМИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА МОЭВМ
ОТЧЕТ
ПО ЛАБОРАТОРНОЙ РАБОТЕ №1
«Форматы исполняемых файлов»
по дисциплине
«Операционные системы»
Преподаватель: Алексеев А.Н.
Выполнили СТ. ГР. 3341 ФКТИ: Митягин С.А.
Грачев Д.В.
САНКТ-ПЕТЕРБУРГ
2006
Задание:
-
Выдать список ELF файлов в заданной директории
-
Вывести точку входа для исполняемого файла и несколько команд ассемблера находящихся по этому адресу
-
Вывести список секций в заданном файле.
-
Проверить наличие определенной строки в секции .dynstr для заданного файла
-
Объединить строки из секций .dynstr всех файлов заданной директории в одном файле
-
Выдать список “read only” секций и их суммарный размер
-
Для объектного файла выдать список неопределенных символов (т.е. чьи адреса определяться после линковки)
-
Для заданного исполняемого файла и адреса вывести несколько строк ассемблерного кода находящихся по этому адресу если секция исполняемая иначе выдать сообщение об ошибке.
Введение:
Общие сведения об ELF – файлах:
…
Структура ELF-файла приведена на рисунке:
Использованные в работе команды и утилиты:
-
Пакет binutils – это коллекция утилит для работы с бинарными файлами. Она включает в себя:
А) objdump – вывод информации об объектных файлах.
Objdump –d Для любой функции программы получить с помощью утилиты objdump ее бинарный и ассемблерный код с соответствующими сороками на С
objdump –h С помощью утилиты objdump, определить в какой секции хранятся символьные строки, и в какой исполняемый код программы
objdump –d -j Выводит информацию о заданной секции бинарного файла
Б) readelf – выводит информацию о бинарных файлах.
readelf –S выводит список секций в файле.
В) grep - позволяет найти строку символов в файле.
Г) file – используется для определения типа данных, содержащихся в файле. File различает множество типов, включая бинарные файлы формата ELF, системные библиотеки, пакеты RPM и множество различных графических форматов.
Информация, которая потребовалась для лабораторной работы:
-
Искусство программирования на языке сценариев командной оболочки (Автор: Mendel Cooper, Перевод: Андрей Киселев)
-
Книга А. Соловьева на основании следующих источников:
-
Кристиан К. Введение в операционную систему UNIX. - М.: Финансы и статистика, 1985. -318 с.
-
Готье Р. Руководство по операционной системе UNIX. -М.: Финансы и статистика, 1985. -232 с.
-
Браун П. Введение в операционную систему UNIX. -М.: Мир, 1987. -287 с.
-
Томас Р., Йейтс Дж. Операционная система UNIX. Руководство для пользователей. -М.: Радио и связь, 1986. -352 с.
-
Банахан М., Раттер Э. Введение в операционную систему UNIX. -М.: Радио и связь, 1986. -341 с.
-
Тихомиров В.П., Давидов М.И. Операционная система UNIX: Инструментальные средства программирования. -М.: Финансы и статистика, 1988. -206 с.
-
Баурн С. Операционная система UNIX. -М.: Мир, 1986. -462 с.
-
Беляков М.И. и др. Инструментальная мобильная операционная система ИНМОС. -М.: Финансы и статистика, 1985 -231 с.
-
Топхем Д., Чьюнг Х.В. Юникс и Ксеникс. -М.: Мир, 1988. -392 с.
-
Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система. -М.: Радио и связь, 1991 -208 с.
-
Керниган Б.В., Пайк Р. UNIX - Универсальная среда программирования. -М.: Финансы и статистика, 1992 -304 с.
Вывод:
Скрипт выполняет поставленные задачи. Он реализован на языке командной оболочки Shell.