Cheat Engine

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Cheat Engine - корисна програма для пошуку місця збереження важливих значень у пам'яті запущеної гри та їх зміни. Після завантаження та запуску ви переглядаєте навчальний посібник з використання інструменту. Якщо ви хочете вивчити, як використовувати інструмент, настійно рекомендується завершити навчання.

Що ви шукаєте?

Цей інструмент дуже корисний для пошуку місця збереження деякого значення (зазвичай числа) у пам'яті програми. Зазвичай числа зберігаються у формі 4 байтів, але ви також можете знайти їх у форматах double або float, або ви можете шукати щось відмінне від числа. З цієї причини вам потрібно бути впевненими, що ви вибрали, що ви хочете шукати:

Також ви можете вказати різні типи пошуків:

Ви також можете позначити прапорець, щоб зупинити гру під час сканування пам'яті:

Гарячі клавіші

У Edit --> Settings --> Hotkeys ви можете встановити різні гарячі клавіші для різних цілей, наприклад зупинка гри (що досить корисно, якщо ви хочете сканувати пам'ять у певний момент). Інші опції доступні:

Зміна значення

Після того, як ви знайшли, де знаходиться значення, яке ви шукаєте (докладніше про це у наступних кроках), ви можете змінити його, двічі клацнувши на ньому, а потім двічі клацнувши на його значенні:

І, нарешті, позначте прапорець, щоб внести зміни в пам'ять:

Зміни до пам'яті будуть негайно застосовані (зверніть увагу, що до тих пір, поки гра не використовує це значення знову, значення не буде оновлено в грі).

Пошук значення

Тож, ми будемо припускати, що є важливе значення (наприклад, життя вашого користувача), яке ви хочете покращити, і ви шукаєте це значення в пам'яті)

Через відому зміну

Припускаючи, що ви шукаєте значення 100, ви виконуєте сканування, шукаючи це значення, і знаходите багато співпадінь:

Потім ви щось робите, щоб змінити значення, і зупиняєте гру та виконуєте наступне сканування:

Cheat Engine буде шукати значення, які змінилися з 100 на нове значення. Вітаємо, ви знайшли адресу значення, яке ви шукали, і тепер можете його змінити. Якщо у вас все ще є кілька значень, зробіть щось, щоб знову змінити це значення, і виконайте ще одне "наступне сканування", щоб відфільтрувати адреси.

Невідоме значення, відома зміна

У випадку, якщо ви не знаєте значення, але знаєте, як змінити його (і навіть значення зміни), ви можете шукати своє число.

Тож, почніть з виконання сканування типу "Невідоме початкове значення":

Потім змініть значення, вкажіть, як змінилося значення (у моєму випадку воно було зменшено на 1) і виконайте наступне сканування:

Вам буде представлено всі значення, які були змінені обраним способом:

Після того, як ви знайшли своє значення, ви можете його змінити.

Зверніть увагу, що є багато можливих змін і ви можете виконувати ці кроки стільки разів, скільки захочете, щоб відфільтрувати результати:

Випадкова адреса пам'яті - Пошук коду

До цього ми вивчили, як знайти адресу, де зберігається значення, але дуже ймовірно, що в різних виконаннях гри ця адреса знаходиться в різних місцях пам'яті. Тож давайте дізнаємося, як завжди знаходити цю адресу.

Використовуючи деякі з зазначених хитрощів, знайдіть адресу, де ваша поточна гра зберігає важливе значення. Потім (зупинивши гру, якщо ви бажаєте) клацніть правою кнопкою миші на знайденій адресі та виберіть "Дізнатися, що звертається до цієї адреси" або "Дізнатися, що записується в цю адресу":

Перша опція корисна для того, щоб дізнатися, які частини коду використовують цю адресу (що корисно для більш багатьох речей, наприклад, знання, де ви можете змінити код гри). Друга опція є більш конкретною і буде кориснішою в цьому випадку, оскільки ми цікавимося знанням звідки записується це значення.

Після вибору однієї з цих опцій, відлагоджувач буде приєднаний до програми, і з'явиться нове порожнє вікно. Тепер грайте в гру та змінюйте це значення (без перезапуску гри). Вікно повинно бути заповнене адресами, які змінюють значення:

Тепер, коли ви знайшли адресу, яка змінює значення, ви можете змінити код на свій розсуд (Cheat Engine дозволяє вам швидко змінювати його на NOPs):

Тож, ви можете змінити його так, щоб код не впливав на ваше число, або завжди впливав позитивно.

Випадкова адреса пам'яті - Знаходження вказівника

Виконайте попередні кроки, щоб знайти потрібне значення. Потім, використовуючи "Дізнатися, що записується за цією адресою", дізнайтеся, яка адреса записує це значення, та двічі клацніть на ній, щоб переглянути розкладку:

Потім виконайте нове сканування, шукаючи шістнадцяткове значення між "[]" (значення $edx у цьому випадку):

(Якщо з'являється кілька варіантів, зазвичай потрібна найменша адреса) Тепер ми знайшли вказівник, який буде змінювати значення, яке нас цікавить.

Клацніть на "Додати адресу вручну":

Тепер клацніть на прапорець "Вказівник" та додайте знайдену адресу у текстове поле (у цьому сценарії знайдена адреса на попередньому зображенні була "Tutorial-i386.exe"+2426B0):

(Зверніть увагу, що перша "Адреса" автоматично заповнюється з адреси вказівника, яку ви вводите)

Клацніть ОК, і буде створено новий вказівник:

Тепер кожного разу, коли ви змінюєте це значення, ви змінюєте важливе значення, навіть якщо адреса пам'яті, де знаходиться значення, відрізняється.

Впровадження коду

Впровадження коду - це техніка, коли ви впроваджуєте шматок коду у цільовий процес, а потім перенаправляєте виконання коду через ваш власний написаний код (наприклад, даруючи вам бали замість віднімання їх).

Тож уявіть, що ви знайшли адресу, яка віднімає 1 від життя вашого гравця:

Клацніть на Показати розкладчик, щоб отримати розкладений код. Потім клацніть CTRL+a, щоб викликати вікно автоматичного збирання та виберіть Шаблон --> Впровадження коду

Заповніть адресу інструкції, яку ви хочете змінити (зазвичай це автоматично заповнюється):

Буде створено шаблон:

Тож вставте ваш новий збірковий код у розділ "newmem" та видаліть оригінальний код з "originalcode", якщо ви не хочете, щоб він виконувався**.** У цьому прикладі впроваджений код додасть 2 бали замість віднімання 1:

Клацніть на виконання та так далі, і ваш код має бути впроваджений у програму, змінюючи поведінку функціональності!

Посилання

  • Повний посібник з Cheat Engine, пройдіть його, щоб дізнатися, як почати працювати з Cheat Engine

Last updated