Создаем Internal чит без создания потока и лишнего веса

  • Автор темы Автор темы Arkting
  • Дата начала Дата начала
В данном гайде я расскажу как избавиться от мусорного веса модуля, и создадим собственный чит без использования WinApi функции CreateThread.

Создаем новый проект
динамической библиотеки .dll
Создаем файл .cpp (назовем его Source) и напишем в нем точку входа.

C++:
Expand Collapse Copy
#include <windows.h> // библиотека из которой возьмем некоторые типы данных (например HINSTANCE / HMODULE)

// Сделаем все в одном файле, чтобы вы не запутались.

// Создаем обычный класс, в котором будет хранится информация игровой структуры Cvars
class netvars
{
public:
    // Изменим Field View для нашего локального игрока (FOV)
    void FieldView()
    {
        *(float*)(nCvars() + 0x4) = 100.f; // прибавляя к адресу структуры его смещение, получаем необходимую для перехвата функцию и меняем ее значение
    }
private: // Используем данный тип доступа, так как нам не пригодятся данные из него использовать вне класса
    netvars* nCvars() { return *(netvars**)0x142182330; } // указатель, хранящий в себе адрес игровой стуктуры Cvars
}; netvars pNetvars; // Создаем переменную класса от которой будем отталкиваться в точке входа, заметьте, не указатель.

bool DllMain(HINSTANCE hDll, unsigned long long dDll, void*)
{
    switch (dDll) // С помощью оператора switch "выбираем" нужный нам параметр для переменной dDll
    {
    case 1: // Именно в case 1 мы и будем работать, ведь #define DLL_PROCESS_ATTACH = 1.
        // Используйте бесконечный цикл, если у вас имеются методы, которые отрабатывают не один раз, (используйте while/for)
        // В нашем случае можно не использовать цикл, фов не исчезнет, отработая 1 раз
        pNetvars.FieldView();
        break;
    }
    return true;
}

Мы только что избавились от ненужной WINAPI CreateThread, которая висела у нас бы в импортах и MRAC ее бы спалил.


Далее, избавимся от
ненужного веса нашего модуля.

1. Заходим в настройки проекта
2. С.С++ ? Optimization ? Maximum Optimization (Favor size)
3. Code generation ? Security Check ? Disable Security Check
4. Linker ? Manifest file ? Generate Manifest ? NO
5. Linker ? Debugging ? Generate Debug Info ? NO
6. Linker ? Advanced ? EntryPoint ? "Ваше название точки входа"
7. Code generation ? Enable String Pooling ? Yes.


Исходный код / скомпилированный проект я прилагать сюда не буду, все прописано в одном файле, просто скопируйте.
А разве при ините длл у тебя не создаётся поток как раз под дллмаин?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В данном гайде я расскажу как избавиться от мусорного веса модуля, и создадим собственный чит без использования WinApi функции CreateThread.

Создаем новый проект
динамической библиотеки .dll
Создаем файл .cpp (назовем его Source) и напишем в нем точку входа.

C++:
Expand Collapse Copy
#include <windows.h> // библиотека из которой возьмем некоторые типы данных (например HINSTANCE / HMODULE)

// Сделаем все в одном файле, чтобы вы не запутались.

// Создаем обычный класс, в котором будет хранится информация игровой структуры Cvars
class netvars
{
public:
    // Изменим Field View для нашего локального игрока (FOV)
    void FieldView()
    {
        *(float*)(nCvars() + 0x4) = 100.f; // прибавляя к адресу структуры его смещение, получаем необходимую для перехвата функцию и меняем ее значение
    }
private: // Используем данный тип доступа, так как нам не пригодятся данные из него использовать вне класса
    netvars* nCvars() { return *(netvars**)0x142182330; } // указатель, хранящий в себе адрес игровой стуктуры Cvars
}; netvars pNetvars; // Создаем переменную класса от которой будем отталкиваться в точке входа, заметьте, не указатель.

bool DllMain(HINSTANCE hDll, unsigned long long dDll, void*)
{
    switch (dDll) // С помощью оператора switch "выбираем" нужный нам параметр для переменной dDll
    {
    case 1: // Именно в case 1 мы и будем работать, ведь #define DLL_PROCESS_ATTACH = 1.
        // Используйте бесконечный цикл, если у вас имеются методы, которые отрабатывают не один раз, (используйте while/for)
        // В нашем случае можно не использовать цикл, фов не исчезнет, отработая 1 раз
        pNetvars.FieldView();
        break;
    }
    return true;
}

Мы только что избавились от ненужной WINAPI CreateThread, которая висела у нас бы в импортах и MRAC ее бы спалил.


Далее, избавимся от
ненужного веса нашего модуля.

1. Заходим в настройки проекта
2. С.С++ ? Optimization ? Maximum Optimization (Favor size)
3. Code generation ? Security Check ? Disable Security Check
4. Linker ? Manifest file ? Generate Manifest ? NO
5. Linker ? Debugging ? Generate Debug Info ? NO
6. Linker ? Advanced ? EntryPoint ? "Ваше название точки входа"
7. Code generation ? Enable String Pooling ? Yes.


Исходный код / скомпилированный проект я прилагать сюда не буду, все прописано в одном файле, просто скопируйте.
Смотри, всё сделал как в коде, адрес вставил свой новый, но оно не работает, ну, не инжектит в игру. Подскажи пожалуйста, почему? Заранее благодарен
 
Назад
Сверху Снизу