Частина 34 - Програма ASM 5 [Indirect Addressing З Registerами]
Для повного змісту змісту всіх уроків, будь ласка, натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial
У нашій п'ятій програмі ми продемонструємо, як можна маніпулювати непрямим зверненням з реєстрів.
Ми можемо розмістити більше однієї значення в пам'яті, як вказано вище. У минулому наше місце пам'яті містить одне окреме значення. У вище вказаному ви можете побачити, що значення констант містить 11 окремих значень.
Це створює послідовний ряд даних, розміщених в пам'яті. Кожне значення даних займає одне одиницю пам'яті, яка є цілим числом або 4 байтами.
Ми повинні використовувати систему індексування для визначення цих значень, оскільки те, що ми створили вище, є масивом.
Ми використовуватимемо індексований режим пам'яті, де адреса пам'яті визначається базовою адресою, зміщенням адреси для додавання до базової адреси та розміром елемента даних, у нашому випадку цілим числом 4 байти та індексом для визначення якогось елемента даних вибрати.
Увага! Масив починається з індексу 0. Тому в вище вказаному коді ми бачимо 1, що потрапляє в edi, який є індексом 2, який в кінцевому підсумку потрапляє в ebx.
Ми глибше вивчимо це в наступному урокі, де ми відлагодимо, але я бажаю, щоб ви взяли трохи часу, щоб вивчити код вище і добре зрозуміти, що відбувається.
Увага! Для збірки ми типуємо:
as –32 -o indirect_addressing_with_registers.o indirect_addressing_with_registers.s
Для зв'язування об'єкта file ми типуємо:
ld -m elfMDXX_i386XMDX -o indirect_addressing_with_registers indirect_addressing_with_registers.o
Я чекаю на побачення всіх наступної тижня, коли ми глибше вивчимо відлагодження нашої п'ятої програми збірки!