Привіт і ласкаво просимо назад.
У цьому уроці ми дізнаємося про регістри прапорів.
Де їх можна знайти?
Регістри прапорців знаходяться в правій частині вікна, де ви бачите всі регістри.
Під ним розташовані регістри прапорів.
І їх там досить багато.
Але ті, які найчастіше використовуються для цілей зворотної інженерії: прапор CF, також відомий
як прапор перенесення, і ось тут - CF. І ви можете бачити нульовий прапорець - прапорець є нульовий прапорець.
А - також відомий як прапор-знак, який знаходиться ось тут.
І, нарешті, прапор OF, також відомий як прапор переповнення.
Тепер нульовий прапор.
Прапорець - встановлюється в одиницю, коли останній результат обчислення дорівнює нулю, і прапорець - скидається в нуль, коли останній
результат обчислення відмінний від нуля.
Наприклад, якщо ми перемістимо гекс-значення вісімки на -, а потім ви перемістите гекс-значення
вісімки на - і віднімете - від -, що ви отримаєте?
Ти отримаєш нуль.
Отже, коли ви отримуєте результат нуль, нуль зберігається в -, але результат нуль означає, що прапорець нуля встановлений
в одиницю.
Таким чином, щоразу, коли обчислення завершується нулем, ви отримаєте прапорець -, який буде встановлено в одиницю.
Отже, коли ви вживаєте слово "набір", це означає, що він стає одним цілим.
Отже, давайте спробуємо це зараз у відладчику x64dbg. Відкриваємо перший шаблон.
А потім ми зберемо ці інструкції.
Ось тут ми будемо збирати хід.
- гекс вісім, за яким слідує хід - гекс вісім, за яким слідує під -.
- а потім натисніть "ОК".
Тепер ми ставимо там точку зупинки, що я і зробив, і запускаємо.
Тепер ми переступаємо.
Тепер ми перемістимо його на -.
Переступи через -.
Тепер вісім.
Тоді пересуваємо вісімку на -.
Відійди.
- тепер вісім.
Тепер ми будемо віднімати від -.
Це означає, що ми візьмемо вісім мінус вісім і отримаємо -.
Результат дорівнює нулю, і нуль зберігається назад у -.
Тож давайте переступимо, і ми побачимо - тепер це нуль.
Отже, коли це відбувається, нульовий прапорець встановлюється в одиницю.
До цього нульовий прапорець дорівнює нулю.
Отже, оскільки результат обчислення дорівнює нулю, нульовий прапорець стає одиницею.
Повернімося до нашого слайду. Після підінструкції нульовий прапорець встановлюється
в одиницю.
Наступний приклад - це ще один приклад.
Перемістіть шість до -, а потім перемістіть шість до -, а потім додайте шість до - і збережіть результат у -.
Після інструкції ADD прапорець нуля буде обнулений, оскільки результат
обчислення відмінний від нуля. Нульовий прапорець обнуляється, коли останнє обчислення дає ненульовий результат.
Тож давайте введемо це зараз.
Тож сюди ми переїжджаємо.
- Знову нуль вісім, і рух - шість.
Знову вісім, а потім натискаємо під - -, натискаємо ОК.
І закрий це.
Тож тепер ми переносимо його в -.
Давай переступимо. Вісім тепер у -.
Тепер ми перемістимо вісімку на -.
Переступаємо, і - вісім.
Тепер ми додамо... Вибачте, ми мали б додати ADD, тож давайте змінимо це.
Додам, моя помилка.
Прошу вибачення.
Ми повинні додати.
Гаразд, тепер ми додамо - до -.
- дорівнює восьми, і ми додамо його до -, що дорівнює восьми.
Отже, результат має бути 16.
Отже, 16 повинно мати один нуль у -, що є ненульовим значенням.
Тож давайте переступимо через це.
Тепер прапор Z - один.
Подивимося, що з цього вийде.
Прапорець Z стає нульовим, оскільки результат обчислення дорівнює 16, один нуль в - для 16.
Отже, щоразу, коли ви отримуєте ненульове значення, нульовий прапорець очищується.
Отже, коли ви говорите, що він очищений, це означає, що він стає нульовим.
Ось як працює нульовий
прапорець.
Отже, збережемо цей файл: patch file, і натиснемо patch, і назвемо його 27, 27 тире - прапорець.
Крапка E X- F
- натисніть
на кнопку Зберегти.
На цьому відео все.
Дякуємо за перегляд.