Frame Attwood
Исследователь
- Сообщения
- 34
- Реакции
- 1
Спасибо, полезно 

пасибо, очень интересноИногда, играя с какой-нибудь читом, ты думал, Как же его сделали? Смогу ли сделать?
Я попробую показать вам как можно написать простой чит на c++.
Что для этого нужно:
УМЕТЬ РАБОТАТЬ С CHEAT ENGINE(можно посмотреть видео на ютубе если кто не в теме)
VISUAL STUDIO И КАК С НИМ РАБОТАТЬ
В CHEAT ENGINEДЛЯ НАЧАЛА ВЫ НАХОДИТЕ НУЖНЫЙ АДРЕС(КОТОРЫЙ ВЫ ХОТИТЕ ЧТОБЫ ВАШЕ ПРИЛОЖЕНИЕ АВТОМАТИЧЕСКИ МЕНЯЛО ЗНАЧЕНИЕ НА УКАЗАННОЕ)
B VISUAL STUDIO СОЗДАЁМ ПРОЕКТ, ШАБЛОНЫ КОНСОЛЬНОЕ ПРИЛОЖЕНИЕ
И ТАМ ЖЕ ПИШЕМ:
Вот сам код, я попробую объяснить его.C++:#include <windows.h> #include <iostream> #include <string> #include <stdio.h> using namespace std; int main() { DWORD addr = 0x101454D4;//здесь адрес из Cheat Engine, обратите внимание я поставил впереди 0х и потом адрес DWORD pid;//pid процесса int data;//эту переменную я буду использовать для записи и чтения HWND hwd = FindWindow(0, L"Counter-Strike"); GetWindowThreadProcessId(hwd, &pid); if (!hwd) { std::cout << "Нету такого окна!" << endl; //printf("oppa"); system("pause"); return -1; } HANDLE hnd = OpenProcess(PROCESS_ALL_ACCESS, false, pid); if (!hnd) { std::cout << "Ошибка!" << endl; system("pause"); return -1; } ReadProcessMemory(hnd, (LPVOID)addr, &data, sizeof(nmon), 0); std::cout << "Значение в Адресе: " <<data<<endl; std::cout << "На что вы хотите поменять значение: "; std::cin >> data; WriteProcessMemory(hnd, (LPVOID)addr, &data, sizeof(nmon), 0); std::cout<<"Значение изменено!" system("pause"); }
Подключаем что нам нужно:
C++:#include <windows.h> #include <iostream> #include <string> #include <stdio.h> using namespace std;
Создаём переменные
C++:DWORD addr = 0x101454D4;//здесь адрес из Cheat Engine, обратите внимание я поставил впереди 0х и потом адрес DWORD pid;
ПОлучаем pid процесса, обратите внимание, я использовал название окна и находил его pid, но вы можете делать так, как показывал дарвин
если делайте как дарвин вот код:C++:HWND hwd = FindWindow(0, L"Counter-Strike"); GetWindowThreadProcessId(hwd, &pid);
C++:pid=GetProcessID("csgo.exe");
Проверка, есть ли такое окно,
обратите внимание если вы сделали как дарвин то проверку рекомендуется сделать так:C++:if (!hnd) { std::cout << "Ошибка!" << endl; system("pause"); return -1; }
C++:if (!pid) { std::cout << "Ошибка!" << endl; system("pause"); return -1; }
тут мы читаем то, что лежит в указанном адресе(addr) и выводим на экран
C++:ReadProcessMemory(hnd, (LPVOID)addr, &data, sizeof(nmon), 0); std::cout << "Значение в Адресе: " << data<<endl;
тут мы меняем значение в памяти игры:
C++:std::cout << "На что вы хотите поменять значение: "; std::cin >> data; WriteProcessMemory(hnd, (LPVOID)addr, &data, sizeof(nmon), 0); std::cout<<"Значение изменено!" system("pause");
Думаю вам был полезен данный гайд!
Я холтел бы поинтересоваться, зачем сейчас геймхаккинг? Для себя?Для новичков очень полезно кто собирается в Game Hacking
Чтение и запись в память это основная функция что делают все читы
Респект!