Загрузка...

Читоделы прошу помочь с кодом софта для left4dead2

Тема в разделе C/C++ создана пользователем volmak_inactive2508147 1 дек 2019. 237 просмотров

Загрузка...
  1. volmak_inactive2508147
    volmak_inactive2508147 Автор темы 1 дек 2019 0 30 июл 2019
    Есть ли читоделы на с++ которые работают с движком source на форуме?
    Вообщем есть один довольно плохой код, но суть не в этом.
    Может я криворукий и имею не много опыта, я не знаю как точно описать проблему.
    Идет краш игры при использовании чего либо (при внедрении краша нету)
    Я понимаю что он толку такого ничего глобального с себя не представляет.
    Здесь есть что-то наподобие телепорта)
    ну вот кидаю код:
    Код

    #include <Windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <TlHelp32.h>
    #include <tchar.h>
    #include <math.h>

    using namespace std;

    struct vec2 {
    float x, y;
    };

    struct vec3 {
    float x, y, z;
    };

    DWORD_PTR dwGetModuleBaseAddress(DWORD dwProcID, TCHAR* szModuleName)
    {
    DWORD_PTR dwModuleBaseAddress = 0;
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, dwProcID);
    if (hSnapshot != INVALID_HANDLE_VALUE)
    {
    MODULEENTRY32 ModuleEntry32;
    ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
    if (Module32First(hSnapshot, &ModuleEntry32))
    {
    do
    {
    if (_tcsicmp(ModuleEntry32.szModule, szModuleName) == 0)
    {
    dwModuleBaseAddress = (DWORD_PTR)ModuleEntry32.modBaseAddr;
    break;
    }
    } while (Module32Next(hSnapshot, &ModuleEntry32));
    }
    CloseHandle(hSnapshot);
    }
    return dwModuleBaseAddress;
    }

    class Player
    {
    public:
    char pad_0x0000[0xEC]; //0x0000
    __int32 iHealth; //0x00EC
    char pad_0x00F0[0x154]; //0x00F0
    __int32 jumpingMaybe; //0x0244
    char pad_0x0248[0x140]; //0x0248
    vec3 pos; //0x0388
    char pad_0x0394[0x470]; //0x0394

    }; //Size=0x0804

    DWORD ProcessThread() {

    DWORD serverdll;
    GetWindowThreadProcessId(FindWindow(NULL, "Left 4 Dead 2"), &serverdll);
    bool healthHack = false;
    vec3 savePos = { 0 };
    while (1)
    {
    DWORD baseAddress = (DWORD)GetModuleHandle("server.dll");

    Player* localPlayer = (Player*)serverdll + 0x7B4C4C;
    Player* localPlayer2 = (Player*)serverdll + 0x7B4C5C;
    Player* localPlayer3 = (Player*)serverdll + 0x7B4C6C;
    Player* localPlayer4 = (Player*)serverdll + 0x7B4C7C;
    if (localPlayer != 0)
    {
    if (healthHack)
    localPlayer->iHealth = 101;

    if (GetAsyncKeyState(VK_INSERT))
    localPlayer->pos.z += 100.0;
    if (GetAsyncKeyState(VK_DELETE))
    localPlayer->pos.z -= 100.0;

    if (GetAsyncKeyState(VK_UP))
    localPlayer->pos.x += 100.0;
    if (GetAsyncKeyState(VK_DOWN))
    localPlayer->pos.x -= 100.0;

    if (GetAsyncKeyState(VK_RIGHT))
    localPlayer->pos.y += 100.0;
    if (GetAsyncKeyState(VK_LEFT))
    localPlayer->pos.y -= 100.0;

    if (GetAsyncKeyState(VK_HOME))
    healthHack = !healthHack;

    if (GetAsyncKeyState(VK_SUBTRACT))
    {
    savePos.y = localPlayer->pos.y;
    savePos.z = localPlayer->pos.z;
    savePos.x = localPlayer->pos.x;
    }

    if (GetAsyncKeyState(VK_MULTIPLY))
    {
    if (savePos.y == 0 || savePos.x == 0 || savePos.z == 0)
    {
    savePos.y = localPlayer->pos.y;
    savePos.z = localPlayer->pos.z;
    savePos.x = localPlayer->pos.x;
    }
    else
    {
    localPlayer->pos.y = savePos.y;
    localPlayer->pos.z = savePos.z;
    localPlayer->pos.x = savePos.x;
    }
    }
    }
    Sleep(100);
    }
    return 0;
    }

    BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) {
    switch (reason) {
    case DLL_PROCESS_ATTACH:
    CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ProcessThread, 0, 0, 0);
    }
    return true;
    }

    У меня больше вопросов по этой части:

    Код

    DWORD ProcessThread() {

    DWORD serverdll;
    GetWindowThreadProcessId(FindWindow(NULL, "Left 4 Dead 2"), &serverdll);
    bool healthHack = false;
    vec3 savePos = { 0 };
    while (1)
    {
    DWORD baseAddress = (DWORD)GetModuleHandle("server.dll");

    Player* localPlayer = (Player*)serverdll + 0x7B4C4C;
    Player* localPlayer2 = (Player*)serverdll + 0x7B4C5C;
    Player* localPlayer3 = (Player*)serverdll + 0x7B4C6C;
    Player* localPlayer4 = (Player*)serverdll + 0x7B4C7C;
    Прошу помощи кто знает с чем может быть проблема или что я делаю не так)
     
    1 дек 2019 Изменено
  2. HearthMIRAI
    DWORD baseAddress = (DWORD)GetModuleHandle("server.dll");
    GetWindowThreadProcessId(FindWindow(NULL, "Left 4 Dead 2"), &serverdll);
    крутой читодел, удачи тебе там
     
Top