Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л.р.1-12.СПРГ-1(40, укр).doc
Скачиваний:
5
Добавлен:
27.08.2019
Размер:
2.33 Mб
Скачать

3.1.3 Операції зі стеком:

push <source> зменшує значення покажчика стекового фрейму (регістр ESP), потім копіює значення <source> у вершину стека. Операндом може бути пам'ять, регістр загального призначення, сегментний регістр або безпосереднє значення розміром у слово або подвійне слово. Якщо операнд - це безпосереднє значення і його розмір не визначений, то в 16-бітному режимі за замовчуванням він обробляється як слово, а в 32-бітному режимі як подвійне слово. Мнемоніки pushw і pushd - це варіанти цієї інструкції, що зберігають відповідно слова і подвійні слова. Допускається в одному рядку кілька операндів (розділених пробілами, а не комами).

pusha зберігає в стек уміст восьми регістрів загального призначення. У неї немає операндів. Існує дві версії цієї інструкції: 16-бітна і 32-бітна. Асемблер автоматично генерує версію, що відповідає поточному режимові, але, використовуючи мнемоніки pushaw або pushad, це можна змінити для того, щоб завжди одержувати, відповідно, 16- або 32-бітну версію. 16-бітна версія цієї інструкції зберігає регістри загального призначення в такому порядку: АХ, СХ, DX, ВХ, значення регістра SP перед тим, як був збережений АХ, далі ВР, SI і DI. 32-бітна версія зберігає еквівалентні 32-бітні регістри в тім же порядку.

pop <destination> - переводить слово або подвійне слово з поточної верхівки стека в операнд-адресат і після зменшує значення ESP на відповідне значення (2 або 4 байти). Операндом може служити пам'ять, регістр загального призначення або сегментний регістр. Мнемоніки popw і popd - це варіанти цієї інструкції, що відновлюють відповідно слова і подвійних слів. Якщо в одному рядку утримується трохи операндів, розділених пробілами, компілятор асемблює ланцюжок інструкцій з цими операндами.

popa відновлює регістри, збережені в стек інструкцією pusha, крім збереженого значення SP (або ESP), що буде зігнорований. У цієї інструкції немає операндів. Щоб асемблювати 16 або 32-бітну версію цієї інструкції, використовуйте мнемоніки “popaw” або “popad”

3.2 Робота із налагоджувачем OllyDbg.

Після завантаження OllyDbg перед користувачем з'явиться вікно (CPU Window).

3.2.1 Вікно CPU складається з п'яти частин.

Головне вікно. У цьому вікні відбувається власне саме налагодження. Всі інструкції наведені в дезасембльованому виді. Збоку виділена адреси, яка винна виконатися наступною. Між стовпчиком адреси і стовпчиком дезасембльованого лістингу є стовпчик з машинним кодом інструкції. Самий останній стовпчик містить у собі коментарі.

Дамп пам'яті. У цьому вікні відображується стан пам'яті МП

Панель стеку. У панелі стеку, можна змінити потрібні вам байти в пам'яті, ставити точку зупини та ін.

Вікно регістрів. У вікні регістрів відображаються всі 32-бітні регістри, регістри прапорів і різні інші регістри. Для того, щоб змінити регістр треба клацнути по його значенню 2 рази й увести нове значення. Змінити регістр прапора можна шляхом подвійного натиснення по одному з них.

Панель інструментів.

Перша кнопка ліворуч – „відкрити файл” [F3], потім ідуть „перезавантажити файл” [Ctrl+F2] (завантажує останній файл, що відкривався), „закрити файл” [Alt + F2], слідом - парі кнопок „виконати” - [F9]” і „пауза” [F12].

Далі за списком режими трасування:

„step in” [F7] - виконує одну команду за раз. При обробці виклику (call) передає керування у викликану підпрограму, зупиняючись на першій команді в ній.

„step over” [F8] - також виконує одну команду за раз, але при обробці виклику call намагається виконати підпрограму за один крок, не передаючи їй керування. Керування все-таки передається в підпрограму, якщо на виклик установлена точка зупинки, або в ній генеруються виняткові ситуації (переривання).

„animate” [Ctrl + F7] або [Ctrl + F8]. Щоб не натискати F7 або F8 сотні разів підряд, OllyDbg передбачає режим “анімації” Це режим автоматичного покрокового виконання. Анімація зупиняється: при натисканні [Esc], або якщо зустрічається точка зупинки або виключення.

„trace into” [Ctrl + F11] - режим схожий на анімацію, тільки вікна дебагера при цьому не обновляються, і ведуться журнали зміни регістрів, пам'яті й т. п.

„trace over” [Ctrl + F12] - ті ж, що й „trace into”, але підпрограми виконуються за один крок, як при „step over”.

„execute till RET” [Ctrl + F9] - виконувати програму до інструкції RET.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]