Як створювати чіти

Для створення читов тобі знадобляться 3 речі:

1. Delphi якийсь останньої версії.
2. GameHack (або що-небудь на зразок цього). Але краще GameTrainer (бо халявний).
3. Прямі руки!

Для початку ти повинен дізнатися дещо про гаморі.

1. Назва вікна. Ну, назва вікна кожен ламер знаходити вміє, тут вміти щось нічого не треба.

3. Тип даних. Тип даних відіграє важливу роль! Грунтуючись на ньому, ти будеш робити чит, а також визначати максимальне значення Ось приклади:

byte: 256; 1 байт;
word: 65536; 2 байта;
dword: 4294967296; 4 байта;

Ми будемо використовувати ось ці API функції (почитай про них в довідці):

FindWindow
GetWindowThreadProcessId
OpenProcess
ReadProcessMemory
WriteProcessMemory
CloseHandle

Спочатку оголосили ось це лайно:

var
Wnd. THandle; // хендл вікна
ProcessId. integer; // пид (Не п * д * р)
pokevalue. single;
// саме значення (про типи даних пам'ятаєш?)
ProcHandle. integer; // хендл процесу
NumberOfBytes: byte; // кількість байтів
rw. cardinal; // читання / запис

Тепер додай на форму Edit і Button, а після натискання button'а напиши наступне:

begin
Wnd: = FindWindow (nil, WindowTitle); // отримуємо хендл вікна
if Wnd = 0 then // якщо гама не запущено, то обламуються лама
begin
MessageBox (0, 'Запусти КС, козел', 'Помилка в ДНК!', MB_OK + MB_ICONERROR);
exit;
end;

try
pokevalue: = StrToInt (Edit1.Text); // отримуємо кількість хп, введене в Edit
except
MessageBox (0, 'Введи хп, козел', 'Помилка в ДНК!', MB_OK + MB_ICONERROR);
exit;
end;

GetWindowThreadProcessId (Wnd, @ProcessId); // отримуємо PID
ProcHandle: = OpenProcess (PROCESS_ALL_ACCESS, false, ProcessId);
// отримуємо хендл процесу

NumberOfBytes: = 4; // в даному випадку 4 байта,
// а це значить, що максимально значення
// == 2564 (

WriteProcessMemory (ProcHandle, ptr (Addr_Health1), @ p okevalue, NumberOfBytes, rw);
WriteProcessMemory (ProcHandle, ptr (Addr_Health2), @ p okevalue, NumberOfBytes, rw);
WriteProcessMemory (ProcHandle, ptr (Addr_Health3), @ p okevalue, NumberOfBytes, rw);
// Хакан гру

Closehandle (ProcHandle);
// закруглюється
end;

Можеш в чит додати одну фішку: використовуючи функцію ReadProcessMemory можна
вставити кількість хп в свою прогу, і тут-таки змінити на інше
А це можна зробити ось так:

ReadProcessMemory (ProcHandle, ptr (Addr_Health1), @ po kevalue, 4, rw);
Edit1.Text: = FloatToStr (pokevalue);

Software_Address_Health1 = $ 00137A54;
Software_Address_Health2 = $ 00138938;
Software_Address_Health3 = $ 01CBA38C;

OpenGl_Address_Health1 = $ 00137BA8;
OpenGl_Address_Health2 = $ 00138A88;
OpenGl_Address_Health3 = $ 01CA64DC;

D3D_Address_Health1 = $ 00137BA8;
D3D_Address_Health2 = $ 00138A88;
D3D_Address_Health3 = $ 01CA64DC;

Тут ніби все ясно де і що.

Запам'ятай, що це для КСа, тому той же код не потягне на деякі гами! Там вже самі розбирайтеся. Посивівши де-небудь годинки 2 і зрозумієш що до чого.

Схожі статті