Вопрос Вопрос почему не работает glow на питоне?

Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2023
Сообщения
25
Реакции[?]
3
Поинты[?]
3K
решил написать себе вх на питоне и что то не получилсь(
Python:
import pymem
import pymem.process

pm = pymem.Pymem("cs2.exe")

client = pymem.process.module_from_name(pm.process_handle, "client.dll")
dwGlowManager = pm.read_int(client.lpBaseOfDll + 0x19113E0) # glow
dwEntityList = pm.read_int(client.lpBaseOfDll + 0x18B3FA8) # entity
Glow_size = pm.read_int(client.lpBaseOfDll + 0x4)


def main():
    glow()


def glow():
    while True:
    for i in range(0, 32):
        glowObjectDefinition = pm.read_int(client.lpBaseOfDll + i * 0x10)
        entityglowing = pm.read_int(glowObjectDefinition + 0x1440)
        if dwEntityList:
            pm.write_float(dwGlowManager + entityglowing * 0x38 + 0x8, float(0))
            pm.write_float(dwGlowManager + entityglowing * 0x38 + 0xC, float(1))
            pm.write_float(dwGlowManager + entityglowing * 0x38 + 0x10, float(0))
            pm.write_float(dwGlowManager + entityglowing * 0x38 + 0x14, float(1))
            pm.write_int(dwGlowManager + entityglowing * 0x38 + 0x28, 1)


if __name__ == '__main__':
    main()
 
Начинающий
Статус
Оффлайн
Регистрация
9 Сен 2020
Сообщения
316
Реакции[?]
18
Поинты[?]
2K
а в чем ошибка то
Подумай, переделай код ниже под python
C++:
#include <Windows.h>
#include <stdio.h>
#include <TlHelp32.h>
#include <iostream>
#include <thread>
 
uint32_t get_process_id_by_name(const char *process_name)
{
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
    PROCESSENTRY32 pEntry;
    pEntry.dwSize = sizeof (pEntry);
    BOOL hRes = Process32First(hSnapShot, &pEntry);
    while (hRes)
    {
        if (strcmp(pEntry.szExeFile, process_name) == 0)
        {
           return static_cast<uint32_t>(pEntry.th32ProcessID);
        }
        hRes = Process32Next(hSnapShot, &pEntry);
    }
    CloseHandle(hSnapShot);
 
    return 0;
}
 
uintptr_t get_module_base(uint32_t process_id, const char* module_name)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, process_id);
 
    if (hSnapshot != INVALID_HANDLE_VALUE)
    {
        MODULEENTRY32 ModuleEntry32 = { 0 };
        ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
 
        if (Module32First(hSnapshot, &ModuleEntry32))
        {
            do
            {
                if (strcmp(ModuleEntry32.szModule, module_name) == 0)
                {
                    return reinterpret_cast<uintptr_t>(ModuleEntry32.modBaseAddr);
                }
            } while (Module32Next(hSnapshot, &ModuleEntry32));
        }
        CloseHandle(hSnapshot);
    }
 
    CloseHandle(hSnapshot);
    return 0;
}
 
template<typename T>
T memory_read(HANDLE cs2_handle, uintptr_t address)
{
    T val = T();
    ReadProcessMemory(cs2_handle, (LPCVOID)address, &val, sizeof(T), NULL);
    return val;
}
 
template<typename T>
void memory_write(HANDLE cs2_handle, uintptr_t address, T value)
{
    WriteProcessMemory(cs2_handle, (LPVOID)address, &value, sizeof(T), NULL);
}
 
namespace offsets
{
    ptrdiff_t p_entity_list = 0x178D8C8;
    ptrdiff_t m_h_player_pawn = 0x7FC;
    ptrdiff_t m_fl_detected_by_enemy_sensor_time = 0x13C8;
}
 
int main(int argc, char* argv[])
{
    SetConsoleTitleA("example");
 
    uint32_t cs2_process_id = get_process_id_by_name("cs2.exe");
    printf("cs2.exe has pid: %i\n", cs2_process_id);
 
    if (!cs2_process_id)
        printf("cs2.exe not found!\n");
 
    HANDLE cs2_process_handle = OpenProcess(PROCESS_ALL_ACCESS, 0, cs2_process_id);
    printf("cs2.exe process handle: 0x%lx\n", cs2_process_handle);
 
    if (!cs2_process_handle)
        printf("cs2.exe process handle is null!\n");
 
    uintptr_t cs2_module_client = get_module_base(cs2_process_id, "client.dll");
    printf("client.dll base address: 0x%llx\n", cs2_module_client);
 
    if (!cs2_module_client)
        printf("client.dll not found in cs2.exe!\n");
 
    while (true)
    {
        static bool glow_enabled = false;
 
        if (GetAsyncKeyState(VK_F1))
        {
            glow_enabled = !glow_enabled;
            std::this_thread::sleep_for(std::chrono::milliseconds(150));
            printf("status enabled: %s\n", glow_enabled ? "true" : "false");
        }
 
        for (int i = 1; i < 64; i++)
        {
            uintptr_t entity_list = memory_read<uintptr_t>(cs2_process_handle, cs2_module_client + offsets::p_entity_list);
            if (!entity_list)
                continue;
 
            uintptr_t list_entry = memory_read<uintptr_t>(cs2_process_handle, entity_list + (8 * (i & 0x7FFF) >> 9) + 16);
            if (!list_entry)
                continue;
 
            uintptr_t player = memory_read<uintptr_t>(cs2_process_handle, list_entry + 120 * (i & 0x1FF));
            if (!player)
                continue;
 
            uint32_t player_pawn = memory_read<uint32_t>(cs2_process_handle, player + offsets::m_h_player_pawn);
 
            uintptr_t list_entry2 = memory_read<uintptr_t>(cs2_process_handle, entity_list + 0x8 * ((player_pawn & 0x7FFF) >> 9) + 16);
            if (!list_entry2)
                continue;
 
            uintptr_t p_cs_player_pawn = memory_read<uintptr_t>(cs2_process_handle, list_entry2 + 120 * (player_pawn & 0x1FF));
            if (!p_cs_player_pawn)
                continue;
 
            if(!glow_enabled)
                memory_write<float>(cs2_process_handle, p_cs_player_pawn + offsets::m_fl_detected_by_enemy_sensor_time, 0.f); // off
            else
                memory_write<float>(cs2_process_handle, p_cs_player_pawn + offsets::m_fl_detected_by_enemy_sensor_time, 86400.f); // on
        }
 
        std::this_thread::sleep_for(std::chrono::milliseconds(50));
    }
 
    system("pause");
 
    return 0;
}
 
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2023
Сообщения
25
Реакции[?]
3
Поинты[?]
3K
неработает твой код
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
24 Фев 2024
Сообщения
4
Реакции[?]
1
Поинты[?]
1K
Подумай, переделай код ниже под python
C++:
#include <Windows.h>
#include <stdio.h>
#include <TlHelp32.h>
#include <iostream>
#include <thread>

uint32_t get_process_id_by_name(const char *process_name)
{
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
    PROCESSENTRY32 pEntry;
    pEntry.dwSize = sizeof (pEntry);
    BOOL hRes = Process32First(hSnapShot, &pEntry);
    while (hRes)
    {
        if (strcmp(pEntry.szExeFile, process_name) == 0)
        {
           return static_cast<uint32_t>(pEntry.th32ProcessID);
        }
        hRes = Process32Next(hSnapShot, &pEntry);
    }
    CloseHandle(hSnapShot);

    return 0;
}

uintptr_t get_module_base(uint32_t process_id, const char* module_name)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, process_id);

    if (hSnapshot != INVALID_HANDLE_VALUE)
    {
        MODULEENTRY32 ModuleEntry32 = { 0 };
        ModuleEntry32.dwSize = sizeof(MODULEENTRY32);

        if (Module32First(hSnapshot, &ModuleEntry32))
        {
            do
            {
                if (strcmp(ModuleEntry32.szModule, module_name) == 0)
                {
                    return reinterpret_cast<uintptr_t>(ModuleEntry32.modBaseAddr);
                }
            } while (Module32Next(hSnapshot, &ModuleEntry32));
        }
        CloseHandle(hSnapshot);
    }

    CloseHandle(hSnapshot);
    return 0;
}

template<typename T>
T memory_read(HANDLE cs2_handle, uintptr_t address)
{
    T val = T();
    ReadProcessMemory(cs2_handle, (LPCVOID)address, &val, sizeof(T), NULL);
    return val;
}

template<typename T>
void memory_write(HANDLE cs2_handle, uintptr_t address, T value)
{
    WriteProcessMemory(cs2_handle, (LPVOID)address, &value, sizeof(T), NULL);
}

namespace offsets
{
    ptrdiff_t p_entity_list = 0x178D8C8;
    ptrdiff_t m_h_player_pawn = 0x7FC;
    ptrdiff_t m_fl_detected_by_enemy_sensor_time = 0x13C8;
}

int main(int argc, char* argv[])
{
    SetConsoleTitleA("example");

    uint32_t cs2_process_id = get_process_id_by_name("cs2.exe");
    printf("cs2.exe has pid: %i\n", cs2_process_id);

    if (!cs2_process_id)
        printf("cs2.exe not found!\n");

    HANDLE cs2_process_handle = OpenProcess(PROCESS_ALL_ACCESS, 0, cs2_process_id);
    printf("cs2.exe process handle: 0x%lx\n", cs2_process_handle);

    if (!cs2_process_handle)
        printf("cs2.exe process handle is null!\n");

    uintptr_t cs2_module_client = get_module_base(cs2_process_id, "client.dll");
    printf("client.dll base address: 0x%llx\n", cs2_module_client);

    if (!cs2_module_client)
        printf("client.dll not found in cs2.exe!\n");

    while (true)
    {
        static bool glow_enabled = false;

        if (GetAsyncKeyState(VK_F1))
        {
            glow_enabled = !glow_enabled;
            std::this_thread::sleep_for(std::chrono::milliseconds(150));
            printf("status enabled: %s\n", glow_enabled ? "true" : "false");
        }

        for (int i = 1; i < 64; i++)
        {
            uintptr_t entity_list = memory_read<uintptr_t>(cs2_process_handle, cs2_module_client + offsets::p_entity_list);
            if (!entity_list)
                continue;

            uintptr_t list_entry = memory_read<uintptr_t>(cs2_process_handle, entity_list + (8 * (i & 0x7FFF) >> 9) + 16);
            if (!list_entry)
                continue;

            uintptr_t player = memory_read<uintptr_t>(cs2_process_handle, list_entry + 120 * (i & 0x1FF));
            if (!player)
                continue;

            uint32_t player_pawn = memory_read<uint32_t>(cs2_process_handle, player + offsets::m_h_player_pawn);

            uintptr_t list_entry2 = memory_read<uintptr_t>(cs2_process_handle, entity_list + 0x8 * ((player_pawn & 0x7FFF) >> 9) + 16);
            if (!list_entry2)
                continue;

            uintptr_t p_cs_player_pawn = memory_read<uintptr_t>(cs2_process_handle, list_entry2 + 120 * (player_pawn & 0x1FF));
            if (!p_cs_player_pawn)
                continue;

            if(!glow_enabled)
                memory_write<float>(cs2_process_handle, p_cs_player_pawn + offsets::m_fl_detected_by_enemy_sensor_time, 0.f); // off
            else
                memory_write<float>(cs2_process_handle, p_cs_player_pawn + offsets::m_fl_detected_by_enemy_sensor_time, 86400.f); // on
        }

        std::this_thread::sleep_for(std::chrono::milliseconds(50));
    }

    system("pause");

    return 0;
}
А там код именно вх?
 
еблан
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
268
Реакции[?]
88
Поинты[?]
32K
у тебя устарелая версия питона,кс 2 поддерживает только самую последнюю и только в мультипотоке при отсутствии х32 переменных
 
Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2022
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
9 Сен 2020
Сообщения
316
Реакции[?]
18
Поинты[?]
2K
у тебя устарелая версия питона,кс 2 поддерживает только самую последнюю и только в мультипотоке при отсутствии х32 переменных
Не только в мультипотоке это 1
А 2 это то что версия python тут не причем, pymem работает как в x32 и x64 архитектуре
 
Новичок
Статус
Оффлайн
Регистрация
21 Ноя 2023
Сообщения
1
Реакции[?]
0
Поинты[?]
0
У тебя оффсеты давно устарели. Посмотри тут
Пожалуйста, авторизуйтесь для просмотра ссылки.
(no ad)


Ps... Glow вроде уже детектед ваком. ( ну как минимум метку получишь)
 
Сверху Снизу