Частина 24 - Хакінг ASM 1 [Moving Immediate Data]
Для повного змісту змісту всіх уроків натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial
Давайте почнемо завантажувати бінарний файл у GDB.
Для завантаження у GDB наберіть:
gdb -q moving_immediate_data
Давайте спочатку встановимо зупинку на початку, натиснувши b _start.
Далі ми можемо запустити програму, натиснувши r.
Для початку розбору програми ми просто наберемо disas.
Ми написали nop, тобто ніякої операції або 0x90 з точки зору OPCODE для належних цілей відладки, які зупинка належно потрапила. Це добра практика при створенні програм на мові ассемблера.
Давайте трохи розігріємося! У цей момент давайте si раз і зробимо i r щоб побачити, що 0x64 справді було переміщено у EAX.
Ми бачимо, що EAX має значення 0x64 або 100 у десятковому вигляді. Давайте тепер ХАКНЕМ цей значення, встановивши EAX до чогось, наприклад 0x66 шляхом натискання set $eax = 0x66.
БАМ! І ось воно! Ви бачите УЛЬТИМАТИВну силу ассемблера! Ми тільки змінили значення з 0x64 на 0x66 або 100 на 102 у десятковому вигляді. Це дуже простий приклад, але ви вже бачите, коли ви навчитеся володіти цією інформацією, ви отримаєте більшу владу над комп'ютером. З кожною програмою, яку ми створюємо, ми зробимо дуже простий урок, подібний цьому, де ми захопимо хоча б одну частину коду, щоб не тільки побачити, як програма створюється і відлагоджується, але і як ми можемо змінювати її на свій розсуд.
Я чекаю на побачення з вами наступної тижня, коли ми розпочнемо створювати нашу другу програму на мові ассемблера!