Пишем базу для своего чита nom 2

Тема в разделе "Программирование читов", создана пользователем averyhugemen, 13 май 2017.

  1. averyhugemen

    averyhugemen
    Expand Collapse
    Пользователь

    Регистрация:
    1 янв 2016
    Сообщения:
    76
    Симпатии:
    8
    ТУТОР ДЛЯ ТЕХ, КТО ЗНАЕТ C++.

    Проект для тех, кто читал первую часть от анчоуса
    Для начала, хотел бы изменить код анчоуса в плане чтения причины вызова функции Dllmain(dwReason)
    Код:
    if (dwReason == DLL_PROCESS_ATTACH)
    {
    
    CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)function, NULL, NULL, NULL);
    
    }
    
    Меняем на:
    Код:
    switch (dwReason) {
        case DLL_PROCESS_ATTACH:
            CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)InitialiseCheat, NULL, NULL, NULL);
            break;
        case DLL_PROCESS_DETACH:
            exit(0);
            break;
        default:
            return false;
        }
    С помощью этой функции чит сможет обрабатывать не только DLL_PROCESS_ATTACH, но и DETACH, а также неизвестные ошибки. Если вы уже попытались вставить этот код в dllmain, то заметили, что функция InitialiseCheat не объявлена. Вот она:
    Код:
    void InitialiseCheat() {
        while (!GetModuleHandle("CShell.dll")) std::this_thread::sleep_for(std::chrono::milliseconds(1));
    }
    Так же для этого нужны библиотеки:
    Код:
    #include <iostream>
    #include <stdlib.h>
    #include <Windows.h>
    #include <TlHelp32.h>
    #include <string>
    #include <time.h>
    #include <cmath>
    #include <conio.h>
    #include <thread>
    #include <chrono>
    #include <shlwapi.h>
    Эти библиотеки используются чаще всего при написании читов. Теперь разберёмся со всеми функциями в InitialiseCheat. Для начала разберёмся с функцией GetModuleHandle(). Находится эта функция в библиотеке Windows.h. Её синтаксис: HMODULE WINAPI GetModuleHandle(LPCTSTR lpModuleName); IpModuleName
    Указатель на символьную строку с нулем в конце, которая содержит имя модули (или .dll или .exe файл). Если расширение имени файла опускается, в конец добавляется заданное по умолчанию библиотечное расширение .dll. Символьная строка имени файла может включать в себя конечный символ точки (.), который указывает, что имя модуля не имеет расширения. Строка не должна определять путь. Когда определяется путь, убедитесь, что используются обратные слэши (\), а не прямые слэши (/). Имя сравнивается (независимо от ситуации) с именами модулей в текущий момент отображаемыми в адресном пространстве вызывающего процесса.

    Данные луп(loop) нужен для того, чтобы чит не начинал работать, пока игра не прогрузилась полностью.

    Функция std::this_thread::sleep_for(std::chrono::milliseconds(1)) используется вместо Sleep(1); , так как воспринимается программой она лучше. про this_thread можете прочитать тут: http://en.cppreference.com/w/cpp/thread/sleep_for
    std::chrono::miliseconds(1) - 1 милисекунда. Про chrono можно почитать тут: https://habrahabr.ru/post/324984/

    Как и в первой части, мы продвинулись не на много, но в этот раз у вас будет задание ;)
    На основе первой и второй частей вы должны написать библиотеку, которая при ЗАЖАТОЙ(!!) клавише F2 (список клавиш тут: https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx) будет высвечивать MessageBox с любым сообщением. Код кидать в коменты.
    P.S. Может быть этим уроком я заставлю анчоуса сделать третью часть..?
     
  2. averyhugemen

    averyhugemen
    Expand Collapse
    Пользователь

    Регистрация:
    1 янв 2016
    Сообщения:
    76
    Симпатии:
    8
    И да, инжект должен происходить в процесс игры crossfire
     
  3. Anchous

    Anchous
    Expand Collapse
    Анчоувс
    Команда форума Админ

    Регистрация:
    13 дек 2015
    Сообщения:
    1.342
    Симпатии:
    850
    if(GetAnyncKeyState(VK_F2))
    {
    MesageBox(0, "text", "text", скокато нулей, MB_OK);
    }
     
  4. averyhugemen

    averyhugemen
    Expand Collapse
    Пользователь

    Регистрация:
    1 янв 2016
    Сообщения:
    76
    Симпатии:
    8
    Не совсем то, что я хотел. При нажатии f2 твоя функция автоматически возвращает положительное значение, даже если это не требовалось. Code:
    Скрытый текст:
    **Скрытый текст: Скрытый текст могут просматривать только пользователи следующих групп: Administrative, Moderating.**