Розділ 11 - Позначники
Для повного змісту всіх уроків натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті.
https://github.com/mytechnotalent/Reverse-Engineering-Tutorial використовує плоский модель пам'яті, до якої ми маємо одне велике масив адрес, які існують всередині процесора.
Позначник нічого не більше ніж адреса певного значення в пам'яті. Давайте візьмемо приклад:
mov rax, 0x10
У цьому прикладі ми переміщаємо 10 в шістнадцятковому вигляді в регістр rax .
Аби отримати значення всередині rax в 0x10, ви використовуєте наступну синтаксис:
mov rbx, слово ptr [rax]
Позачітаємо, що значення всередині пам'яті 0x10 було 0x20. Тому rax вказує на значення всередині 0x10, яке коли ви позначите за допомогою [rax] містить 0x20. 0x20 — це значення всередині регістру rax.
Ми переміщаємо слово значення вказаного всередині rax в регістр rbx.
Якщо ми зробимо:
mov слово ptr [rax], 0x66
Це помістить значення 0x66 в пам'ятну місцину 0x10. Ми знаємо, що значення всередині 0x10 пам'ятної місцини було 0x20. Тому нове значення всередині пам'ятної місцини 0x10 буде 0x66.
Це може бути заплутаним, однак коли ми потрапимо в код протягом наступних місяців, це стане більш очевидним.
Наступна неділя ми потрапимо в завантаження ефективної адреси! Підтримуйте нас!