З поверненням.
У попередній лекції я вже познайомив вас з високорівневими концепціями структур даних.
Тож у цій лекції ми розглянемо це питання детально.
Отже, ми збираємося реалізувати цю структуру даних.
Тож давайте подивимося, як ми можемо це зробити.
Тож відкрийте свій x64dbg.
А потім відкрийте шаблон.
А потім виберіть карту пам'яті, куди ви хочете зберегти структуру даних.
Тож давайте підемо сюди і подивимось на нього.
Отже, це ділянка пам'яті, в якій ми хочемо створити структуру даних цього типу.
Ми хочемо створити структуру
даних цього типу, щоб зберігати координати X та Y, і назвемо її "точка". Тож давайте зробимо це зараз.
Тож перейдіть сюди, клацніть правою кнопкою миші, а потім виберіть пункт "Дамп".
Отже, це місце, де ми хочемо створити структуру для зберігання координат X та Y.
Але перш ніж ми це зробимо, давайте спочатку створимо структуру всередині x64dbg.
Для цього нам потрібно скористатися текстовим редактором.
Ви можете використовувати навіть Блокнот.
Тож відкрийте свій блокнот і створіть цей файл.
А тепер ви можете завантажити його з розділу "Ресурси".
Я вже створив його для вас.
Отже, це заголовний файл для програми мовою C, про яку ми говорили в попередній лекції.
Пам'ятаєш цю?
Ця програма на C повинна мати заголовний файл, який містить визначення оголошення структури.
Тому я перетворив його в текстовий файл і назвав його point. h.
Тож це називається точкою. h.
Цей файл є точковим. h.
Отже, ви просто зберігаєте його десь або завантажуєте кудись у вашій файловій системі.
І тепер ви можете використовувати його у своєму x64dbg.
Тож переходьте до структури тут.
Перед цим перейдіть на дамп тут і скопіюйте цю адресу туди, де ви хочете створити структуру.
Припустимо, ви хочете створити тут структуру.
Просто клацніть тут правою кнопкою миші, скопіюйте адресу, а потім перейдіть до своєї структури тут і клацніть правою кнопкою миші, а потім тут завантажити,
натисніть "Розбір заголовка. Отже, натисніть "Розбір заголовка"
- це і є заголовний файл.
Отже, знайдіть місце розташування заголовного файлу.
У мене мій заголовний файл знаходиться тут, тому просто знайдіть свій заголовний файл і відкрийте його.
Тож щойно ви відкриваєте його, він готовий до використання.
Тепер все, що вам потрібно зробити, це натиснути правою кнопкою миші і вибрати "Тип візиту. Отже, для типу тут введіть
ім'я структури point. Отже, це ім'я має відповідати
вашому файлу, який ви щойно створили.
Вона має збігатися з назвою цієї структури. Просто введіть тут назву "точка",
а потім натисніть "ОК".
Тепер вставте адресу, яку ви скопіювали раніше, і перейдіть за нею.
А тепер ви побачите, що перебуваєте за адресами 403060 і 403064, які посилаються на цю адресу і на цю адресу.
Тож наразі це нуль.
Як бачите, там нічого немає.
Отже, як ви бачите, x64dbg імпортував визначення вашої структури і показує його тут.
Отже, тут ви бачите, що є точкова структура, а всередині неї
є два члени, X та Y.
Наразі вони дорівнюють нулю.
Отже, зараз ми ініціалізуємо цю структуру значенням шість і три, посилаючись на
нашу координату, яка дорівнює шість і три.
Першому учаснику слід призначити шість.
Другому члену слід призначити три. Для цього достатньо натиснути
правою кнопкою миші на цій першій адресі і вибрати "Слідувати за адресою в дампі. А потім ви переходите
на 403060, першу
адресу. Просто двічі клацніть на ньому, введіть нуль шість і натисніть "ОК".
Тепер поверніться до struct, і ви побачите, що перший член ініціалізовано значенням шість.
Далі перейдемо до члена Y.
Адреса тут.
Клацніть правою кнопкою миші на цьому, "Слідувати за адресою в дампі. А тепер переходимо
до 403064 і робимо те саме.
Просто двічі клацніть на ньому і введіть координати нуль три.
Натисни
"ОК".
Тепер, коли ви повернетесь до struct, ви побачите, що член Y також було ініціалізовано значенням
three.
Отже, зараз ваша структура має значення шість три, але коли ви подивитеся на дамп, то побачите тут три і шість.
Гаразд, переходимо до другого дампу і нашої карти пам'яті.
Перейдіть, клацніть тут правою кнопкою миші, "Слідувати за дампом. Ви побачите цю адресу
тут, 403060.
У вас є значення нуль шість, а за цією адресою - нуль три.
Тож просто подивившись на пам'ять, ви не дізнаєтесь, що тут є структура.
Ось чому корисно імпортувати заголовний файл, який містить структуру.
Зробивши це, ви зможете зробити осмислені висновки з того,
що означають ці цифри.
Просто подивіться на структуру, і ви зрозумієте, що це точка, яка має два члени, X та Y.
X дорівнює шести, а Y - трьом.
Тож тепер ви знаєте, що в цьому вся суть. X, і це точка. Y.
Отже, ось як ви можете використовувати структуру всередині x64dbg для осмисленого використання пам'яті.
Це також спосіб створити структуру всередині x64dbg.
Однак зауважте, що ви можете просто пропустити цей крок, якщо не хочете.
Ви можете просто зайти туди і ввести в пам'ять шість і три, і вона все одно буде поводитися так само.
Це все одно не зміниться, тому що в кінцевому підсумку ви все одно отримаєте шість і три комірки в цих двох комірках пам'яті.
Зверніть увагу, що програма нічого не знає про структури.
Struct створюється лише для того, щоб користувач міг прочитати його так, щоб він мав сенс для вас, ось і все.
На машинному рівні машина не має жодного уявлення про те, що таке шість,
а що таке три, і вона не має жодного уявлення про те, що таке структура.
Сподіваємось, це стане вам у пригоді, коли ви спробуєте розібратися у структурі x64dbg.
Спочатку збережемо це. File, патч-файл, і ви можете зберегти його як 005757, а потім struct. exe.
Натисни "Зберегти".
Гаразд, це все для цього відео.
Дякуємо за перегляд.