Вопрос Как получить bSendPackets используя lua и ffi?

Забаненный
Статус
Оффлайн
Регистрация
17 Мар 2023
Сообщения
20
Реакции[?]
1
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
cclientstate
 
Начинающий
Статус
Оффлайн
Регистрация
28 Мар 2023
Сообщения
3
Реакции[?]
1
Поинты[?]
0
Код:
local ffi = require("ffi")

ffi.cdef[[
    typedef void* (__thiscall* GetClientClassFn)(void*);
    typedef bool (__thiscall* ShouldDrawFn)(void*);
    typedef int (__thiscall* GetTeamFn)(void*);
    typedef bool (__thiscall* IsDormantFn)(void*);
    typedef Vector* (__thiscall* GetAbsOriginFn)(void*);
    typedef Vector* (__thiscall* GetAbsAnglesFn)(void*);

    class C_BasePlayer {
    public:
        virtual GetClientClassFn GetClientClass;
        virtual ShouldDrawFn ShouldDraw;
        virtual GetTeamFn GetTeam;
        virtual IsDormantFn IsDormant;
        virtual GetAbsOriginFn GetAbsOrigin;
        virtual GetAbsAnglesFn GetAbsAngles;
        char pad[0x4];
        bool bSendPackets;
    };
]]

local client_ent_list = ffi.cast("void***", utils.PatternScan("client.dll", "A1 ? ? ? ? 8B 80 ? ? ? ? 40 C3"))
local get_local_player_fn = ffi.cast("int(__thiscall*)(void*)", utils.PatternScan("client.dll", "8B 3D ? ? ? ? 85 FF 0F 84 ? ? ? ? 81 C7"))
local local_player = ffi.cast("C_BasePlayer*", client_ent_list[0][get_local_player_fn(client_ent_list[0]) - 1])

-- Получаешь само значение bSendPackets
local bSendPackets = local_player.bSendPackets
 
iq abuser
Пользователь
Статус
Оффлайн
Регистрация
16 Апр 2021
Сообщения
649
Реакции[?]
138
Поинты[?]
1K
Код:
local ffi = require("ffi")

ffi.cdef[[
    typedef void* (__thiscall* GetClientClassFn)(void*);
    typedef bool (__thiscall* ShouldDrawFn)(void*);
    typedef int (__thiscall* GetTeamFn)(void*);
    typedef bool (__thiscall* IsDormantFn)(void*);
    typedef Vector* (__thiscall* GetAbsOriginFn)(void*);
    typedef Vector* (__thiscall* GetAbsAnglesFn)(void*);

    class C_BasePlayer {
    public:
        virtual GetClientClassFn GetClientClass;
        virtual ShouldDrawFn ShouldDraw;
        virtual GetTeamFn GetTeam;
        virtual IsDormantFn IsDormant;
        virtual GetAbsOriginFn GetAbsOrigin;
        virtual GetAbsAnglesFn GetAbsAngles;
        char pad[0x4];
        bool bSendPackets;
    };
]]

local client_ent_list = ffi.cast("void***", utils.PatternScan("client.dll", "A1 ? ? ? ? 8B 80 ? ? ? ? 40 C3"))
local get_local_player_fn = ffi.cast("int(__thiscall*)(void*)", utils.PatternScan("client.dll", "8B 3D ? ? ? ? 85 FF 0F 84 ? ? ? ? 81 C7"))
local local_player = ffi.cast("C_BasePlayer*", client_ent_list[0][get_local_player_fn(client_ent_list[0]) - 1])

-- Получаешь само значение bSendPackets
local bSendPackets = local_player.bSendPackets
работает? просто чатгпт похожий код выдавал и игра крашила
 
Начинающий
Статус
Оффлайн
Регистрация
28 Мар 2023
Сообщения
3
Реакции[?]
1
Поинты[?]
0
code_language.lua:
local ffi = require("ffi")

local engine = ffi.load("engine.dll")

ffi.cdef("typedef void* (__thiscall* GetEnginePointer_t)();")

local GetEnginePointer = ffi.cast("GetEnginePointer_t", engine[0][142])

local engine_ptr = GetEnginePointer()

local ptr_o = ffi.cast("bool*", engine_ptr + 0xB0)

local bSendPackets_value = ptr_o[0]
можешь этот использовать, он более простой
 
Сверху Снизу