Статья Гайд для новичков: Пишем первый простой чит

f1tt

Следопыт
Сообщения
94
Реакции
13
с
Иногда, играя с какой-нибудь читом, ты думал, Как же его сделали? Смогу ли сделать?
Я попробую показать вам как можно написать простой чит на 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");






Думаю вам был полезен данный гайд!
пасибо, очень интересно
 

legomoneyap

Исследователь
Сообщения
30
Реакции
0
Для новичков очень полезно кто собирается в Game Hacking
Чтение и запись в память это основная функция что делают все читы
Респект!
Я холтел бы поинтересоваться, зачем сейчас геймхаккинг? Для себя?
Ибо сейчас как то строго с создателями чита обходиться начинают...
Или может кто то конкретно подскажет какие то тонкости фз?
 

Jedi

Исследователь
Сообщения
26
Реакции
0
спасибо за годноту
 

ilusaaxd

Пользователь
Сообщения
19
Реакции
2
Очень крутая статья, по сути самая база, причем расписано для людей без опыта
 
Верх Низ