Вопрос External через 2 дня всегда банит VAC

Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
Здравствуйте хотелось бы узнать почему данный исходный код банит вак через 2 дня при этом фактор доверия не падает остаётся зеленым , бан прилетает даже если exe накрыта протектором.Хотелось бы узнать как можно защититься от бана вак и что для этого нужно сделать (интернал шляпы он не банит а это банит -_-) фулл код ниже


Код:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>
#include <thread>
#include <string>


DWORD csgoPID;
HANDLE csgoHandle;

HMODULE csgoHandleClient;
HMODULE csgoHandleEngine;

DWORD csgoLocalPlayer;

std::ptrdiff_t dwLocalPlayer;
std::ptrdiff_t dwEntityList;
std::ptrdiff_t dwForceAttack;
std::ptrdiff_t dwForceJump;
std::ptrdiff_t dwClientState;
std::ptrdiff_t dwClientState_ViewAngles;
std::ptrdiff_t dwGlowObjectManager;
std::ptrdiff_t dwPlayerResource;
std::ptrdiff_t dwGameRulesProxy;

std::ptrdiff_t m_bSpotted = 0x93D;
std::ptrdiff_t m_dwBoneMatrix = 0x26A8;
std::ptrdiff_t m_bDormant = 0xED;
std::ptrdiff_t m_vecOrigin = 0x138;
std::ptrdiff_t m_iGlowIndex = 0x10488;
std::ptrdiff_t m_iCrosshairId = 0x11838;
std::ptrdiff_t m_iTeamNum = 0xF4;
std::ptrdiff_t m_iHealth = 0x100;
std::ptrdiff_t m_hActiveWeapon = 0x2F08;
std::ptrdiff_t m_iItemDefinitionIndex = 0x2FBA;
std::ptrdiff_t m_bIsScoped = 0x9974;
std::ptrdiff_t m_fFlags = 0x104;
std::ptrdiff_t m_flFlashDuration = 0x10470;
std::ptrdiff_t m_aimPunchAngle = 0x303C;
std::ptrdiff_t m_bBombPlanted = 0x9A5;
std::ptrdiff_t m_iShotsFired = 0x103E0;



class Vector3
{
public:
    float x, y, z;

    Vector3(float x = 0.0f, float y = 0.0f, float z = 0.0f)
    {
        this->x = x;
        this->y = y;
        this->z = z;
    }

    void Normalize()
    {
        while (y < -180)
        {
            y += 360;
        }

        while (y > 180)
        {
            y -= 360;
        }

        if (x > 89)
        {
            x = 89;
        }

        if (x < -89)
        {
            x = -89;
        }
    }

    Vector3 operator+(Vector3 vector3)
    {
        return { x + vector3.x, y + vector3.y, z + vector3.z };
    }

    Vector3 operator-(Vector3 vector3)
    {
        return { x - vector3.x, y - vector3.y, z - vector3.z };
    }

    Vector3 operator*(float f)
    {
        return { x * f, y * f, z * f };
    }
};

struct RGBA_s
{
    float r = 1.0f;
    float g = 0.0f;
    float b = 0.0f;
    float a = 1.0f;
};

struct renderWhen_s
{
    bool renderWhenOccluded = true;
    bool renderWhenUnOccluded = false;
};

template<typename T>
inline T RPM(HANDLE handle, const uintptr_t address)
{
    T t = T();
    ReadProcessMemory(handle, (LPCVOID)address, &t, sizeof(t), nullptr);

    return t;
}

template<typename T>
inline BOOL WPM(HANDLE handle, const uintptr_t address, const T& t)
{
    return WriteProcessMemory(handle, (LPVOID)address, &t, sizeof(t), nullptr);
}

HMODULE GetModuleHandle(DWORD pid, const std::string& name)
{
    HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);
    MODULEENTRY32 moduleEntry{};
    moduleEntry.dwSize = sizeof(moduleEntry);

    if (!Module32First(snapshotHandle, &moduleEntry))
    {
        CloseHandle(snapshotHandle);
        return 0;
    }

    do
    {
        if (std::equal(name.begin(), name.end(), moduleEntry.szModule))
        {
            CloseHandle(snapshotHandle);
            return moduleEntry.hModule;
        }
    } while (Module32Next(snapshotHandle, &moduleEntry));

    CloseHandle(snapshotHandle);
    return 0;
}

MODULEENTRY32 GetModuleEntry(DWORD pid, const std::string& name)
{
    HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);
    MODULEENTRY32 moduleEntry{};
    moduleEntry.dwSize = sizeof(moduleEntry);

    if (!Module32First(snapshotHandle, &moduleEntry))
    {
        CloseHandle(snapshotHandle);
        return MODULEENTRY32{};
    }

    do
    {
        if (std::equal(name.begin(), name.end(), moduleEntry.szModule))
        {
            CloseHandle(snapshotHandle);
            return moduleEntry;
        }
    } while (Module32Next(snapshotHandle, &moduleEntry));

    CloseHandle(snapshotHandle);
    return MODULEENTRY32{};
}

DWORD GetProcessID(const std::string& name)
{
    HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 processEntry{};
    processEntry.dwSize = sizeof(processEntry);

    if (!Process32First(snapshotHandle, &processEntry))
    {
        CloseHandle(snapshotHandle);
        return 0;
    }

    do
    {
        if (std::equal(name.begin(), name.end(), processEntry.szExeFile))
        {
            CloseHandle(snapshotHandle);
            return processEntry.th32ProcessID;
        }
    } while (Process32Next(snapshotHandle, &processEntry));

    CloseHandle(snapshotHandle);
    return 0;
}

inline float Distance3D(Vector3 v31, Vector3 v32)
{
    return (float)sqrt(pow((v31.x - v32.x), 2) + pow((v31.y - v32.y), 2) + pow((v31.z - v32.z), 2));
}

uintptr_t FindPattern(HANDLE handle, MODULEENTRY32 moduleEntry, const char* pattern, uint32_t offset, uint32_t extra)
{
    uint8_t* bytes = new uint8_t[moduleEntry.modBaseSize];
    ReadProcessMemory(handle, moduleEntry.modBaseAddr, bytes, moduleEntry.modBaseSize, nullptr);

    uintptr_t scan = 0;
    const char* pat = pattern;
    uintptr_t firstMatch = 0;
    for (uintptr_t pCur = (uintptr_t)bytes; pCur < (uintptr_t)bytes + moduleEntry.modBaseSize; ++pCur) {
        if (!*pat) { scan = firstMatch; break; }
        if (*(uint8_t*)pat == '\?' || *(uint8_t*)pCur == ((((pat[0] & (~0x20)) >= 'A' && (pat[0] & (~0x20)) <= 'F') ? ((pat[0] & (~0x20)) - 'A' + 0xa) : ((pat[0] >= '0' && pat[0] <= '9') ? pat[0] - '0' : 0)) << 4 | (((pat[1] & (~0x20)) >= 'A' && (pat[1] & (~0x20)) <= 'F') ? ((pat[1] & (~0x20)) - 'A' + 0xa) : ((pat[1] >= '0' && pat[1] <= '9') ? pat[1] - '0' : 0)))) {
            if (!firstMatch) firstMatch = pCur;
            if (!pat[2]) { scan = firstMatch; break; }
            if (*(WORD*)pat == 16191 /*??*/ || *(uint8_t*)pat != '\?') pat += 3;
            else pat += 2;
        }
        else { pat = pattern; firstMatch = 0; }
    }
    if (!scan)
    {
        delete[] bytes;
        return 0x0;
    }
    uint32_t read = 0;
    ReadProcessMemory(handle, (void*)(scan - (uintptr_t)bytes + (uintptr_t)moduleEntry.modBaseAddr + offset), &read, sizeof(read), NULL);
    delete[] bytes;
    return read + extra - (uintptr_t)moduleEntry.modBaseAddr;
}



void Triggerbot()
{
    while (true)
    {
        if (GetAsyncKeyState(VK_LMENU)) // You can use any button :)
        {
            int32_t csgoLocalPlayerCrosshairID = RPM<int32_t>(csgoHandle, csgoLocalPlayer + m_iCrosshairId);

            if (csgoLocalPlayerCrosshairID != 0 && csgoLocalPlayerCrosshairID < 64)
            {
                DWORD entity = RPM<DWORD>(csgoHandle, (uintptr_t)csgoHandleClient + dwEntityList + ((csgoLocalPlayerCrosshairID - 1) * 0x10));

                if (RPM<int32_t>(csgoHandle, entity + m_iTeamNum) != RPM<int32_t>(csgoHandle, csgoLocalPlayer + m_iTeamNum) &&
                    RPM<int32_t>(csgoHandle, entity + m_iHealth) > 0)
                {
                    int32_t csgoLocalPlayerWeapon = RPM<int32_t>(csgoHandle, csgoLocalPlayer + m_hActiveWeapon);
                    int32_t csgoLocalPlayerWeaponID = RPM<int32_t>(csgoHandle, RPM<DWORD>(csgoHandle, (uintptr_t)csgoHandleClient + dwEntityList + ((csgoLocalPlayerWeapon & 0xFFF) - 1) * 0x10) + m_iItemDefinitionIndex);

                    if (csgoLocalPlayerWeaponID == 40 || csgoLocalPlayerWeaponID == 9 || csgoLocalPlayerWeaponID == 11 || csgoLocalPlayerWeaponID == 38)
                    {
                        if (RPM<bool>(csgoHandle, csgoLocalPlayer + m_bIsScoped))
                        {
                            WPM<int32_t>(csgoHandle, (uintptr_t)csgoHandleClient + dwForceAttack, 5);
                            Sleep(1);
                            WPM<int32_t>(csgoHandle, (uintptr_t)csgoHandleClient + dwForceAttack, 4);
                        }
                    }
                    else
                    {
                        WPM<int32_t>(csgoHandle, (uintptr_t)csgoHandleClient + dwForceAttack, 5);
                        Sleep(1);
                        WPM<int32_t>(csgoHandle, (uintptr_t)csgoHandleClient + dwForceAttack, 4);
                    }
                }
            }
        }

        Sleep(1);
    }
}



void NoRecoil()
{
    Vector3 lastAimPunchAngle;
    while (true)
    {
        DWORD csgoClientState = RPM<DWORD>(csgoHandle, (uintptr_t)csgoHandleEngine + dwClientState);

        Vector3 viewAngles = RPM<Vector3>(csgoHandle, csgoClientState + dwClientState_ViewAngles);
        Vector3 aimPunchAngle = RPM<Vector3>(csgoHandle, csgoLocalPlayer + m_aimPunchAngle) * 2;

        if (RPM<int32_t>(csgoHandle, csgoLocalPlayer + m_iShotsFired) > 1)
        {
            Vector3 newAngle = viewAngles + lastAimPunchAngle - aimPunchAngle;
            newAngle.Normalize();

            WPM<Vector3>(csgoHandle, csgoClientState + dwClientState_ViewAngles, newAngle);
        }

        lastAimPunchAngle = aimPunchAngle;

        Sleep(1);
    }
}

void GlowHack()
{
    while (true)
    {
        for (uint8_t i = 0; i < 64; i++)
        {
            DWORD entity = RPM<DWORD>(csgoHandle, (uintptr_t)csgoHandleClient + dwEntityList + i * 0x10);

            if (entity && RPM<int32_t>(csgoHandle, entity + m_iTeamNum) != RPM<int32_t>(csgoHandle, csgoLocalPlayer + m_iTeamNum))
            {
                int32_t glowIndex = RPM<int32_t>(csgoHandle, entity + m_iGlowIndex) * 0x38;
                DWORD glowObject = RPM<DWORD>(csgoHandle, (uintptr_t)csgoHandleClient + dwGlowObjectManager);

                WPM<RGBA_s>(csgoHandle, glowObject + glowIndex + 0x8, RGBA_s{});
                WPM<renderWhen_s>(csgoHandle, glowObject + glowIndex + 0x28, renderWhen_s{});
            }
        }

        Sleep(1);
    }
}





int main()
{
    SetConsoleTitleA("svhost");
    csgoPID = GetProcessID("csgo.exe");
    csgoHandle = OpenProcess(PROCESS_ALL_ACCESS, false, csgoPID);
   
    csgoHandleClient = GetModuleHandle(csgoPID, "client.dll");
    csgoHandleEngine = GetModuleHandle(csgoPID, "engine.dll");

    {
        MODULEENTRY32 csgoModuleEntryClient = GetModuleEntry(csgoPID, "client.dll");
        MODULEENTRY32 csgoModuleEntryEngine = GetModuleEntry(csgoPID, "engine.dll");

        dwLocalPlayer = FindPattern(csgoHandle, csgoModuleEntryClient, "8D 34 85 ? ? ? ? 89 15 ? ? ? ? 8B 41 08 8B 48 04 83 F9 FF", 0x3, 0x4);
        dwEntityList = FindPattern(csgoHandle, csgoModuleEntryClient, "BB ? ? ? ? 83 FF 01 0F 8C ? ? ? ? 3B F8", 0x1, 0x0);
        dwForceAttack = FindPattern(csgoHandle, csgoModuleEntryClient, "89 0D ? ? ? ? 8B 0D ? ? ? ? 8B F2 8B C1 83 CE 04", 0x2, 0x0);
        //dwForceJump = FindPattern(csgoHandle, csgoModuleEntryClient, "8B 0D ? ? ? ? 8B D6 8B C1 83 CA 02", 0x2, 0x0);
        dwClientState = FindPattern(csgoHandle, csgoModuleEntryEngine, "A1 ? ? ? ? 33 D2 6A 00 6A 00 33 C9 89 B0", 0x1, 0x0);
        dwClientState_ViewAngles = 0x4D90 /*FindPattern(csgoHandle, csgoModuleEntryEngine, "F3 0F 11 86 ? ? ? ? F3 0F 10 44 24 ? F3 0F 11 86", 0x4, 0x0)*/;
        dwGlowObjectManager = FindPattern(csgoHandle, csgoModuleEntryClient, "A1 ? ? ? ? A8 01 75 4B", 0x1, 0x4);
        dwPlayerResource = FindPattern(csgoHandle, csgoModuleEntryClient, "8B 3D ? ? ? ? 85 FF 0F 84 ? ? ? ? 81 C7", 0x2, 0x0);
        dwGameRulesProxy = FindPattern(csgoHandle, csgoModuleEntryClient, "A1 ? ? ? ? 85 C0 0F 84 ? ? ? ? 80 B8 ? ? ? ? ? 74 7A", 0x1, 0x0);
    }
   

   


   
    std::thread triggerbotThread([] { Triggerbot(); });
    std::thread noRecoilThread([] { NoRecoil(); });
    std::thread glowHackThread([] { GlowHack(); });



    triggerbotThread.detach();
    noRecoilThread.detach();
    glowHackThread.detach();



    while (true)
    {
        csgoLocalPlayer = RPM<DWORD>(csgoHandle, (uintptr_t)csgoHandleClient + dwLocalPlayer);

        Sleep(1);
    }

    return 0;
}
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Записывать какую-то память в игру = подписать себе смертный приговор. Избегай записывания в память ( Glow идёт куда подальше в данном случае ) от слова совсем, нельзя так. Только чтение и всё, тогда сможешь прожить дольше. Можешь рисовать оверлеем в игре боксы, если настолько тяжко играть.
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,650
Реакции[?]
2,173
Поинты[?]
162K
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
не согласен, главное знать куда писать
Но ведь это будет патч .text секции, что детектится ваком. По крайней мере, если верить что написано на заборе что говорят забугорные челы. А так это наверное надо ручками сидеть и проверять, что античит проверяет и творит.
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,650
Реакции[?]
2,173
Поинты[?]
162K
Но ведь это будет патч .text секции, что детектится ваком. По крайней мере, если верить что написано на заборе что говорят забугорные челы. А так это наверное надо ручками сидеть и проверять, что античит проверяет и творит.
то что он делает - пишет в дата секцию, или же просто аллоцированную рвх секцию, ээто не патч .text секции.
а вот куда он пишет уже детект. эти параметры хешируются и сверяются, изменять их нельзя
 
Начинающий
Статус
Оффлайн
Регистрация
9 Авг 2019
Сообщения
164
Реакции[?]
10
Поинты[?]
1K
то что он делает - пишет в дата секцию, или же просто аллоцированную рвх секцию, ээто не патч .text секции.
а вот куда он пишет уже детект. эти параметры хешируются и сверяются, изменять их нельзя
любезный господин, не желаете ли вы поделиться с нами, с простыми смертными более объемным потоком информации по поводу обхода ВАКа и нынешней системы траст фактора
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,650
Реакции[?]
2,173
Поинты[?]
162K
любезный господин, не желаете ли вы поделиться с нами, с простыми смертными более объемным потоком информации по поводу обхода ВАКа и нынешней системы траст фактора
для экстернала достаточно просто читать память. с этим уже можно работать и траст не будет падать. ну а ещё было бы гораздо лучше если твой процесс не так нагло открывал хендл к игре.
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
для экстернала достаточно просто читать память. с этим уже можно работать и траст не будет падать. ну а ещё было бы гораздо лучше если твой процесс не так нагло открывал хендл к игре.
а я хочу допустим глоу а не боксы как их отрисовать не используя врайт мемори
и чтоб вак саул не кидал
допустим даже на примере кода который я высрал
Боксы я уже пытался делать в итоге они работают на всю карту , эпилепсикам не советовал бы с этими боксами играть ибо мерцают так что вырви глаз
и кстати уже 4 день как вак не кинул саул даже за этот код с детект записью
для экстернала достаточно просто читать память. с этим уже можно работать и траст не будет падать. ну а ещё было бы гораздо лучше если твой процесс не так нагло открывал хендл к игре.
есть ли какой-нибудь опен сурс где используется только чтение памяти? допустим твоё вх миднайт.ини ты с какого исходника это сделал?
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,650
Реакции[?]
2,173
Поинты[?]
162K
а я хочу допустим глоу а не боксы как их отрисовать не используя врайт мемори
и чтоб вак саул не кидал
экстерналом - ни как. интерналом можно ребилднув весь глоу.


есть ли какой-нибудь опен сурс где используется только чтение памяти? допустим твоё вх миднайт.ини ты с какого исходника это сделал?
steam overlay ipc - гугли.
 
Немодератор раздела «Создание читов Minecraft»
Пользователь
Статус
Оффлайн
Регистрация
20 Янв 2021
Сообщения
356
Реакции[?]
109
Поинты[?]
4K
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
как быстро это задектят?:laughing::laughing::laughing::laughing:
Код:
if (shotsFired > 1)
                    memory.Write<Vector3>(clientState + offsets::dwClientState_ViewAngles, viewAngles + bestAngle / smoothAftershot);
                else
                    memory.Write<Vector3>(clientState + offsets::dwClientState_ViewAngles, viewAngles + bestAngle / smooth);
                   
                    const auto& enemyColor = WriteColor(enemyMenuCol.r() / 255.f, enemyMenuCol.g() / 255.f, enemyMenuCol.b() / 255.f, enemyMenuCol.a() / 255.f);
                   
                    memory.Write<WriteColor>(cachedMemory + 0x8, enemyColor);
                memory.Write<DoubleBool>(cachedMemory + 0x27, TrueTrue);
               
                memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offsets::dwClientState) + 0x174, -1);
 
Последнее редактирование:
Pa$$ter
Пользователь
Статус
Оффлайн
Регистрация
9 Июн 2020
Сообщения
241
Реакции[?]
83
Поинты[?]
12K
Это понятно что без записи глоу никак не сделать, но всё же если очень хочется то можно как то записать чтоб не улететь . Вот еще способ чтения/записи посмотри пожалуйста и скаже как скоро я за это улечу
Код:
class Memory
{
private:
    std::uintptr_t processId = 0;
    void* processHandle = nullptr;

public:
    Memory(const std::string_view processName) noexcept
    {
        ::PROCESSENTRY32 entry = { };
        entry.dwSize = sizeof(::PROCESSENTRY32);

        const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

        while (::Process32Next(snapShot, &entry))
        {
            if (!processName.compare(entry.szExeFile))
            {
                processId = entry.th32ProcessID;
                processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId);
                break;
            }
        }

        if (snapShot)
            ::CloseHandle(snapShot);
    }

    ~Memory()
    {
        if (processHandle)
            ::CloseHandle(processHandle);
    }

    const std::uintptr_t GetModuleAddress(const std::string_view moduleName) const noexcept
    {
        ::MODULEENTRY32 entry = { };
        entry.dwSize = sizeof(::MODULEENTRY32);

        const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId);

        std::uintptr_t result = 0;

        while (::Module32Next(snapShot, &entry))
        {
            if (!moduleName.compare(entry.szModule))
            {
                result = reinterpret_cast<std::uintptr_t>(entry.modBaseAddr);
                break;
            }
        }

        if (snapShot)
            ::CloseHandle(snapShot);

        return result;
    }

    template <typename T>
    constexpr const T Read(const std::uintptr_t& address) const noexcept
    {
        T value = { };
        ::ReadProcessMemory(processHandle, reinterpret_cast<const void*>(address), &value, sizeof(T), NULL);
        return value;
    }

    template <typename T>
    constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept
    {
        ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address), &value, sizeof(T), NULL);
    }
};
У тебя всё так-же используется WPM/RPM, не надо так делать, VAC видит все открытые на игру хендлы. На данный момент он не сажает траст за это, но это вектор детекта.
Не важно каким образом ты из экстернала запишешь память для Glow будь то WPM, что-то из кернела, DMA, божественное вмешательство в твою оперативку - ты отлетишь за этот функционал.
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,650
Реакции[?]
2,173
Поинты[?]
162K
бтв еспшка работает ещё?
да
как быстро это задектят?:laughing::laughing::laughing::laughing:
Код:
if (shotsFired > 1)
                    memory.Write<Vector3>(clientState + offsets::dwClientState_ViewAngles, viewAngles + bestAngle / smoothAftershot);
                else
                    memory.Write<Vector3>(clientState + offsets::dwClientState_ViewAngles, viewAngles + bestAngle / smooth);
                  
                    const auto& enemyColor = WriteColor(enemyMenuCol.r() / 255.f, enemyMenuCol.g() / 255.f, enemyMenuCol.b() / 255.f, enemyMenuCol.a() / 255.f);
                  
                    memory.Write<WriteColor>(cachedMemory + 0x8, enemyColor);
                memory.Write<DoubleBool>(cachedMemory + 0x27, TrueTrue);
              
                memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offsets::dwClientState) + 0x174, -1);
в клиент стейт запись вроде не детект. по поводу цветов пока ничего не могу сказать, не изучал. а вот углы писать тоже не стоит
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
да
в клиент стейт запись вроде не детект. по поводу цветов пока ничего не могу сказать, не изучал. а вот углы писать тоже не стоит
как это пофиксить все офссеты обновлены
1666871242035.png
 
Последнее редактирование:
Немодератор раздела «Создание читов Minecraft»
Пользователь
Статус
Оффлайн
Регистрация
20 Янв 2021
Сообщения
356
Реакции[?]
109
Поинты[?]
4K
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
а чо делать если есп в африку улетает? типа прям достаточно далеко от перса, хотя полный в окне и 1920х1080
оффсеты обновлял?
у меня тут похожая ситуация только не работает вообще ничего , кроме вх боксов которые летают в небе , при этом оффсеты обновлены модули в порядке в чём может быть причина без понятия... Blick1337 помоги я скинул тебе сурс он очень интересный но еще интересней он будет если заработает :joycat::disrelieved:
 
Pa$$ter
Пользователь
Статус
Оффлайн
Регистрация
9 Июн 2020
Сообщения
241
Реакции[?]
83
Поинты[?]
12K
как быстро это задектят?:laughing::laughing::laughing::laughing:
Код:
if (shotsFired > 1)
                    memory.Write<Vector3>(clientState + offsets::dwClientState_ViewAngles, viewAngles + bestAngle / smoothAftershot);
                else
                    memory.Write<Vector3>(clientState + offsets::dwClientState_ViewAngles, viewAngles + bestAngle / smooth);
                  
                    const auto& enemyColor = WriteColor(enemyMenuCol.r() / 255.f, enemyMenuCol.g() / 255.f, enemyMenuCol.b() / 255.f, enemyMenuCol.a() / 255.f);
                  
                    memory.Write<WriteColor>(cachedMemory + 0x8, enemyColor);
                memory.Write<DoubleBool>(cachedMemory + 0x27, TrueTrue);
              
                memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offsets::dwClientState) + 0x174, -1);
Не меняй углы через dwClientState_ViewAngles. clrRender - детект.
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
Последнее редактирование:
Сверху Снизу