🗊 Презентация PE Linker. Лабораторная работа № 6

Нажмите для полного просмотра!
PE Linker. Лабораторная работа № 6, слайд №1 PE Linker. Лабораторная работа № 6, слайд №2 PE Linker. Лабораторная работа № 6, слайд №3 PE Linker. Лабораторная работа № 6, слайд №4 PE Linker. Лабораторная работа № 6, слайд №5 PE Linker. Лабораторная работа № 6, слайд №6 PE Linker. Лабораторная работа № 6, слайд №7 PE Linker. Лабораторная работа № 6, слайд №8 PE Linker. Лабораторная работа № 6, слайд №9 PE Linker. Лабораторная работа № 6, слайд №10 PE Linker. Лабораторная работа № 6, слайд №11 PE Linker. Лабораторная работа № 6, слайд №12 PE Linker. Лабораторная работа № 6, слайд №13 PE Linker. Лабораторная работа № 6, слайд №14 PE Linker. Лабораторная работа № 6, слайд №15 PE Linker. Лабораторная работа № 6, слайд №16 PE Linker. Лабораторная работа № 6, слайд №17 PE Linker. Лабораторная работа № 6, слайд №18 PE Linker. Лабораторная работа № 6, слайд №19 PE Linker. Лабораторная работа № 6, слайд №20 PE Linker. Лабораторная работа № 6, слайд №21 PE Linker. Лабораторная работа № 6, слайд №22 PE Linker. Лабораторная работа № 6, слайд №23 PE Linker. Лабораторная работа № 6, слайд №24 PE Linker. Лабораторная работа № 6, слайд №25 PE Linker. Лабораторная работа № 6, слайд №26

Вы можете ознакомиться и скачать презентацию на тему PE Linker. Лабораторная работа № 6. Доклад-сообщение содержит 26 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Лабораторная работа №6
Описание слайда:
Лабораторная работа №6

Слайд 2


Common Object File Format - стандартный формат oбъектного файла Common Object File Format - стандартный формат oбъектного файла Некоторые поля файла...
Описание слайда:
Common Object File Format - стандартный формат oбъектного файла Common Object File Format - стандартный формат oбъектного файла Некоторые поля файла имеют восьмеричный формат COFF-формат был сам по себе неплохой отправной точкой, но нуждался в расши­рении, чтобы удовлетворить потребностям новых операционных систем, таких как Windows NT или Windows 98. Результатом такого усовершенствования явился РЕ-формат

Слайд 3


Это формат исполняемых файлов, объектного кода и динамических библиотек, используемый в 32- и 64-битных версиях операционной системы Microsoft...
Описание слайда:
Это формат исполняемых файлов, объектного кода и динамических библиотек, используемый в 32- и 64-битных версиях операционной системы Microsoft Windows. Это формат исполняемых файлов, объектного кода и динамических библиотек, используемый в 32- и 64-битных версиях операционной системы Microsoft Windows. Формат PE представляет собой структуру данных, содержащую всю информацию, необходимую PE загрузчику для проецирования файла в память. PE-файл состоит из заголовка и некоторого набора секций, количество и размер которых зависит от информации, содержащейся в заголовке.

Слайд 4


Компоновщик не превращает объектный файл в исполняемый, а создаёт загрузочный модуль на основе информации, содержащейся в одном или нескольких...
Описание слайда:
Компоновщик не превращает объектный файл в исполняемый, а создаёт загрузочный модуль на основе информации, содержащейся в одном или нескольких объектных модулях. Компоновщик не превращает объектный файл в исполняемый, а создаёт загрузочный модуль на основе информации, содержащейся в одном или нескольких объектных модулях. Другими словами, объектный и исполняемый файлы - это два совершенно разных файла, хотя и содержащие значительный объем одинаковой информации.

Слайд 5


.386 .386 .model flat,stdcall .data extrn GetLongPathNameA: dword extrn MessageBoxA: dword extrn ExitProcess: dword .code _start: push offset...
Описание слайда:
.386 .386 .model flat,stdcall .data extrn GetLongPathNameA: dword extrn MessageBoxA: dword extrn ExitProcess: dword .code _start: push offset lpszShortPath push offset cchBuffer push offset lpszLongPath call GetLongPathNameA push 40h push offset lpszShortPath push offset cchBuffer push offset lpszLongPath push 0 call MessageBoxA push 0 call ExitProcess end _start

Слайд 6


Как и в других исполняемых форматах от Microsoft, заголовок не находится в самом начале файла. Вместо этого не­сколько сотен первых байтов типичного...
Описание слайда:
Как и в других исполняемых форматах от Microsoft, заголовок не находится в самом начале файла. Вместо этого не­сколько сотен первых байтов типичного РЕ-файла заняты под заглушку DOS. Как и в других исполняемых форматах от Microsoft, заголовок не находится в самом начале файла. Вместо этого не­сколько сотен первых байтов типичного РЕ-файла заняты под заглушку DOS. Эта заглушка представляет собой мини­мальную DOS-программу, которая выводит что-либо вроде: "Эта программа не может быть запущена под DOS". Все это предусматривает случай, когда пользователь запускает программу Win32 в среде, которая не поддерживает Win32, полу­чая при этом приведенное выше сообщение об ошибке.

Слайд 7


PE Linker. Лабораторная работа № 6, слайд №7
Описание слайда:

Слайд 8


PE Linker. Лабораторная работа № 6, слайд №8
Описание слайда:

Слайд 9


PE Linker. Лабораторная работа № 6, слайд №9
Описание слайда:

Слайд 10


PE Linker. Лабораторная работа № 6, слайд №10
Описание слайда:

Слайд 11


AddressOfEntryPoint = 1000 (входная точка главного потока = RVA данных секции кода(.text) AddressOfEntryPoint = 1000 (входная точка главного потока =...
Описание слайда:
AddressOfEntryPoint = 1000 (входная точка главного потока = RVA данных секции кода(.text) AddressOfEntryPoint = 1000 (входная точка главного потока = RVA данных секции кода(.text) SectionAlignment ≥ 1000 (const Кратность выравнивания секций в памяти = размер страницы) FileAlignment ≥ 200 (const Кратность выравнивания секций на диске = размер сектора винчестера) SizeOfImage = VirtualAddress(последней скции) + VirtualSize(последней секции) = 3000+1000=4000 SizeOfHeaders = 400 (const = размер всех заголовков и таблицы секций)

Слайд 12


SizeOfStackReserve = 100000 (const = зарезервированный в вирт. пространстве объём для стека главного потока) SizeOfStackReserve = 100000 (const =...
Описание слайда:
SizeOfStackReserve = 100000 (const = зарезервированный в вирт. пространстве объём для стека главного потока) SizeOfStackReserve = 100000 (const = зарезервированный в вирт. пространстве объём для стека главного потока) SizeOfStackCommit = 1000 (const = зарезервированный в пространстве физ. памяти объём для стека главного потока) SizeOfHeapReserve = 100000 (const = зарезервированный объём для главного хипа) SizeOfHeapCommit = 1000 (const = зарезервированный в пространстве физ. памяти объём для главного хипа)

Слайд 13


PE Linker. Лабораторная работа № 6, слайд №13
Описание слайда:

Слайд 14


PE Linker. Лабораторная работа № 6, слайд №14
Описание слайда:

Слайд 15


PE Linker. Лабораторная работа № 6, слайд №15
Описание слайда:

Слайд 16


Если это не секция “.idata” то Если это не секция “.idata” то Клик мышкой на ячейку (0;0) В нижней части всплывшего окна выбираем вкладку «Вставка из...
Описание слайда:
Если это не секция “.idata” то Если это не секция “.idata” то Клик мышкой на ячейку (0;0) В нижней части всплывшего окна выбираем вкладку «Вставка из секции COFF» устанавливаем в поле «Секция COFF» открывшейся панели имя совпадающее с именем этой секции. устанавливаем в поле «Копировать всю секцию» открывшейся панели галочку. Нажимаем кнопку «Копировать».

Слайд 17


Что храниться в секции “.idata” ? Что храниться в секции “.idata” ? Перед загрузкой в память информация, хранящаяся в секции .idata РЕ-файла,...
Описание слайда:
Что храниться в секции “.idata” ? Что храниться в секции “.idata” ? Перед загрузкой в память информация, хранящаяся в секции .idata РЕ-файла, содержит информацию, необходимую для того, чтобы загрузчик мог определить адреса целевых функций и пристыковать их к отображению исполняемого файла. После загрузки секция .idata содержит указатели функций, импортируемых EXE-файлом или DLL. Если это секция “.idata” то Предварительно подключаем таблицу импорта в заголоке.

Слайд 18


PE Linker. Лабораторная работа № 6, слайд №18
Описание слайда:

Слайд 19


PE Linker. Лабораторная работа № 6, слайд №19
Описание слайда:

Слайд 20


PE Linker. Лабораторная работа № 6, слайд №20
Описание слайда:

Слайд 21


PE Linker. Лабораторная работа № 6, слайд №21
Описание слайда:

Слайд 22


Очень важный этап компоновки - разрешение статических и внешних ссылок. Очень важный этап компоновки - разрешение статических и внешних ссылок. На...
Описание слайда:
Очень важный этап компоновки - разрешение статических и внешних ссылок. Очень важный этап компоновки - разрешение статических и внешних ссылок. На этапе компиляции неизвестны реальные адреса переменных и функций API, поэтому компилятор превращает адреса переменных в статические, а адреса функций API - во внешние ссылки. Информация о неразрешенных ссылках хранится в двух местах в объектном модуле: в COFF-таблице символов и в списках привязок для каждой секции.

Слайд 23


Для разрешения ссылок для каждой секции COFF-файла используется следующий алгоритм: найти первую, еще не разрешенную ссылку в списке привязок данной...
Описание слайда:
Для разрешения ссылок для каждой секции COFF-файла используется следующий алгоритм: найти первую, еще не разрешенную ссылку в списке привязок данной секции. Если таких нет, то алгоритм завершен; найти символ в COFF-таблице, на который ссылается данная привязка; если символ является внешним(тип EXTERNAL), то перейти к пункту 9; если данный символ имеет тип STATIC, то данная ссылка является разрешимой; найти секцию PE, соответствующую секции с номером SectionNumber COFF-Файла; сосчитать неизвестный адрес по следующей формуле: Искомый_адрес = Адрес_загрузки(см.шаг 1) + RVA_секции_из_пункта_5_алгоритма + Поле_Value_из_COFF-символа

Слайд 24


в секции PE-файла, соответствующей данной секции COFF-файла, по смещению Address из привязки вставить значение, полученное в пункте 6 алгоритма;...
Описание слайда:
в секции PE-файла, соответствующей данной секции COFF-файла, по смещению Address из привязки вставить значение, полученное в пункте 6 алгоритма; перейти к пункту 1. сосчитать неизвестный адрес по следующей формуле: Искомый_адрес = Адрес_загрузки + RVA элемента массива FirstThunk описывающего данную функцию в секции PE-файла, соответствующей данной секции COFF-файла, по смещению Address из привязки вставить значение, полученное в пункте 5 алгоритма; перейти к пункту 1.

Слайд 25


PE Linker. Лабораторная работа № 6, слайд №25
Описание слайда:

Слайд 26


Если все шаги сделаны правильно, то после компоновки (CTRL+F9) в каталоге проекта появится исполняемый файл, работоспособность которого необходимо...
Описание слайда:
Если все шаги сделаны правильно, то после компоновки (CTRL+F9) в каталоге проекта появится исполняемый файл, работоспособность которого необходимо проверить, запустив его на выполнение (F9). Если все шаги сделаны правильно, то после компоновки (CTRL+F9) в каталоге проекта появится исполняемый файл, работоспособность которого необходимо проверить, запустив его на выполнение (F9). Запустить программу в дебаггере.



Похожие презентации
Mypresentation.ru
Загрузить презентацию