- •Лабораторна робота 1.
- •1. Символи.
- •2 Представлення чисел у пам’яті пеом.
- •2.1 Цілі числа. Цілі числа без знака
- •2.2 Цілі числа зі знаком
- •3 Дійсні числа.
- •3.1 Представлення дійсних чисел у двійковому нормалізованому виді.
- •3.2 Машинні формати дійсних чисел
- •3.2.1. Формат 32 біти - float (або single)
- •3.2.2. Формат 64 біти - double
- •4. Завдання на лабораторну роботу.
- •5. Методичні вказівки з оформлення звіту
- •6. Рішення типового прикладу (без оцінки похибки перетворення)
- •7. Питання для самоперевірки
- •8. Література
- •Лабораторна робота 2.
- •1. 3 Формати файлів, що виконуються, які підтримуються у fasm
- •2. Завдання на лабораторну роботу:
- •3. Методичні вказівки з оформлення звіту
- •4. Питання для самоперевірки.
- •Лабораторна робота 3.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •3.1 Команди пересилання даних.
- •3.1.3 Операції зі стеком:
- •3.2 Робота із налагоджувачем OllyDbg.
- •3.2.2. Розглянемо основні команди меню OllyDbg.
- •4. Завдання на лабораторну роботу.
- •9. Література
- •Лабораторна робота 4.
- •3.2. Операції із прапорами процесора:
- •3.3 Команди розповсюдження знаку
- •4. Методичні вказівки з оформлення звіту
- •5. Рішення типового прикладу.
- •6. Завдання на лабораторну роботу
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 5.
- •3.2. Команди зсуву
- •3.3 Команди сканування бітів
- •4. Методичні вказівки з оформлення звіту
- •5. Приклади використання бітових команд
- •6. Завдання на лабораторну роботу
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 6.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні зведення.
- •3.1. Команди безумовної передачі управління
- •3.1.1. Команда безумовного переходу jmp
- •3.2. Команди умовної передачі управління Jcc
- •3.2.1. Перша група команд умовного переходу.
- •3.2.2 Друга група команд умовного переходу.
- •3.2.3. Третя група команд умовного переходу.
- •3.3. Команди управління циклами looPx
- •3.3.1. Команда loop — перехід по лічильнику
- •3.3.2. Команда loope (loopz) перехід по лічильнику і якщо дорівнює
- •3.3.3. Команда loopne (loopnz) перехід по лічильнику і якщо не дорівнює
- •4. Методичні вказівки з оформлення звіту
- •5. Приклади використання бітових команд
- •6. Завдання на лабораторну роботу.
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 7.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •3.1. Реалізація основних операцій по обробці масивів мовою асемблера.
- •4. Методичні вказівки з оформлення звіту
- •5. Критерії оцінювання.
- •6. Завдання на лабораторну роботу.
- •7. Питання для самоперевірки
- •8. Література
- •Лабораторна робота 8.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •4. Приклади виконання деяких типових задач обробки рядків
- •4. Завдання на лабораторну роботу.
- •Лабораторна робота 9.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролеві.
- •3. Короткі теоретичні відомості
- •3.1. Принципи організації підпрограм
- •3.2. Параметри процедур і значення, що повертаються
- •3.3. Використання загальних перемінних у процедурах
- •3.4. Особливості fasm по організації підпрограм (Windows - додатка).
- •Лабораторна работа 10-11.
- •3.1.2. Засобу bios
- •3.2. Уведення з клавіатури
3.2.2. Розглянемо основні команди меню OllyDbg.
Меню File:
Open - відкрити файл;
Attach - приєднатися до вже запущеного процесу для налагодження;
Exit - вийти
Меню View:
Log - Переглянути інформацію про завантаження файлові й т. д. (Alt+L)
Executable modules - подивитися всі модулі, які використовуються в програмі, що налагоджується (Alt+E).
Memory - Переглянути карту пам'яті. Перший стовпчик - адреси, за якою завантажені різні секції файлові, DLL бібліотек Другий стовпчик - розмір у пам'яті секції. Третій стовпчик - звичайний назва модуля. Четвертий стовпчик - назва секцій. П'ятий стовпчик - що втримується в секції. Всі інші стовпчики не важливі, тому що в них відбиті атрибути секцій у пам'яті. При виконанні команди memory відкривається вікно, аналогічне нижній частині вікна CPU, у якому відображується вміст певної області пам'яті (Alt+M).
Threads - Подивитися всі потоки програми, заморозити їх, змінити їхній пріоритет, убити їх.
Windows - Переглянути інформацію про вікна, класи й т. д., що використовуються програмою.
Handles - Переглянути Handle.
CPU - Відкрити головешці вікно. (Alt+C)
SEH chain - Подивитися, поставити крапка зупину на всі оголошені SEH.
Patches - Переглянути список усіх змін, які Ви зробили в програмі, скасувати всі зміни й т. п. (Ctrl+P)
Call stack - Переглянути усі виклики виконання кодові в стеці. (Alt+K)
Breakpoints - Переглянути всі крапки зупину, відключити, видалити їх. (Alt+B)
Run trace - Переглянути лог трасування.
File - Шістнадцятирічний редактор файлів.
Меню Debug:
Run - запуск програми.
Pause - призупинити виконання програми.
Restart - перезавантажити програму, що налагоджується.
Close - закриття програми що налагоджується.
Step into - еквівалент F7.
Step over - еквівалент F8.
Animate into - еквівалент постійно натиснутої F7.
Animate over - еквівалент постійно натиснутої F8.
Execute till return - виконати програму до виходу з підпрограми.
Trace into - автотрасування із заходом у підпрограми.
Trace over - автотрасування без заходові в підпрограми.
Set condition - призначити умову для авто трасування.
Close ran trace - зупинити авто трасування.
Hardware breakpoints - перегляд hardware крапки зупинки.
Options:
Appearance - Настроювання інтерфейсу налагоджувана.
Just-in-time debugging - У даних настроюваннях, можна призначити Olly, як дебагер, що буде запускатися, коли яка-небудь програма викличе серйозну помилку.
Add to Explorer - додати в контекстне меню Explorer'a пункт для налагодження програми.
4. Завдання на лабораторну роботу.
Описати в програмі (format pe) змінні усіх фундаментальних і логічних типів, розмістити в них довільні числа. Використовуючи усі основні способи адресації, розмістити значення змінних у пам'яті, регістрах МП та стеку. Проаналізувати дані отримані за допомогою OllyDbg.
Описати в програмі (format pe) змінні відповідних типів і розмістити в них значення чисел із лабораторної роботи №1. Зробити висновки про правильність виконання лабораторної роботи №1.
Поміняти місцями значення двох, трьох і чотирьох змінних розміром у байт, 2 байти і чотири байти за допомогою команд mov, xchg, push, pop. Навести алгоритм і програму для кожного із варіантів (3 алгоритми).
Оголосити в програмі (format pe) одномірний масив:
а) із 10 однобайтних елементів прочитати в один з регістрів значення будь-якого елемента (непряма адресація по базі зі зсувом).
б) із 5 двохбайтних елементів.
Навести запис для команди mov. Дайте визначення масиву. У чому відмінність та схожість при роботі із варіантами 4. а та 4. б.?
Оголосити в програмі (format pe) двомірний масив 5x5 із
а) із однобайтнихбайтних елементів
б) із двохбайтних елементів.
і прочитати в один з регістрів значення будь-якого елемента (непряма адресація по базі з індексуванням). Навести запис для команди mov. Дайте визначення двовимірного масиву. У чому відмінність та схожість при роботі із одномірними та двомірними масивами?
5. Методичні вказівки з оформлення звіту
Звіт до лабораторної роботи винний містити:
тему лабораторної роботи;
формулювання мети і задач, що вирішуються в ході виконання роботи;
докладний звіт про способи адресації;
докладний звіт про роботу із дебагером OllyDbg на прикладі використання команди mov.
докладний звіт про виконання завдань;
висновки.
6. Шаблон програми.
Шаблон призначений для розробки програми, що буде налагоджуватися у дебагері, а не виконуватися. У шаблоні опущено відповідні секції, що унеможливлюють його виконання.
Шаблон №1
format pe
start:
; код програми
ret
; місце для визначення даних
Шаблон №2
format pe
jmp start:
; місце для визначення даних
start:
; код програми
ret
7. Критерії оцінювання.
На 3 бали: уміти дати відповіді на питання для самоконтролю та самоперевірки. Виконати завдання 1,2
На 4 бали: додатково виконати завдання 3,4.
На 5 балів: додатково виконати завдання 5.
8. Питання для самоперевірки
Навіщо потрібна робота з налагоджувачем?
Як розміщуються змінні в пам'яті?
Що собою представляє одномірний масив?
Що собою представляє двомірний масив?
Як працювати з багатобайтними числами?
Назвіть, чим відрізняються команди “trace over” та “trace into”.
Назвіть сегментні регістри мікропроцесора і80х86 та їх призначення.
Назвіть види адресацій і наведіть приклади використовуючи команду „mov”
Назвіть, що власне відбувається у головному вікні дебагера.
При написанні програми на fasm, який формат файлу ви оберете і чому.