Вопрос Обновлен CCSGOInput?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2024
Сообщения
8
Реакции
0
Does anyone know the updated structure of CCSGOInput?

Here's what I have:


C++:
Expand Collapse Copy
class CTinyMoveStepData
{
public:
    float flWhen; //0x0000
    MEM_PAD(0x4); //0x0004
    std::uint64_t nButton; //0x0008
    bool bPressed; //0x0010
    MEM_PAD(0x7); //0x0011
}; //Size: 0x0018

class CMoveStepButtons
{
public:
    std::uint64_t nKeyboardPressed; //0x0000
    std::uint64_t nMouseWheelheelPressed; //0x0008
    std::uint64_t nUnPressed; //0x0010
    std::uint64_t nKeyboardCopy; //0x0018
}; //Size: 0x0020

// @credits: www.unknowncheats.me/forum/members/2943409.html
class CExtendedMoveData : public CMoveStepButtons
{
public:
    float flForwardMove; //0x0020
    float flSideMove; //0x0024
    float flUpMove; //0x0028
    std::int32_t nMouseDeltaX; //0x002C
    std::int32_t nMouseDeltaY; //0x0030
    std::int32_t nAdditionalStepMovesCount; //0x0034
    CTinyMoveStepData tinyMoveStepData[12]; //0x0038
    Vector_t vecViewAngle; //0x0158
    std::int32_t nTargetHandle; //0x0164
}; //Size:0x0168

class CCSGOInput
{
public:
    MEM_PAD(0x250);
    CUserCmd arrCommands[MULTIPLAYER_BACKUP];
    MEM_PAD(0x99)
    bool bInThirdPerson;
    MEM_PAD(0x6);
    QAngle_t angThirdPersonAngles;
    MEM_PAD(0xE);
    std::int32_t nSequenceNumber;
    double dbSomeTimer;
    CExtendedMoveData currentMoveData;
    std::int32_t nWeaponSwitchTick;
    MEM_PAD(0x1C4);
    CExtendedMoveData* pExtendedMoveData;
    MEM_PAD(0x48);
    int32_t nAttackStartHistoryIndex1;
    int32_t nAttackStartHistoryIndex2;
    int32_t nAttackStartHistoryIndex3;

    CUserCmd* GetUserCmd()
    {
        return &arrCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }

    void SetViewAngle(QAngle_t& angView)
    {
        // @ida: this got called before GetMatricesForView
        using fnSetViewAngle = std::int64_t(CS_FASTCALL*)(void*, std::int32_t, QAngle_t&);
        static auto oSetViewAngle = reinterpret_cast<fnSetViewAngle>(MEM::FindPattern(CLIENT_DLL, CS_XOR("85 D2 75 3F 48")));

        #ifdef CS_PARANOID
        CS_ASSERT(oSetViewAngle != nullptr);
        #endif

        oSetViewAngle(this, 0, std::ref(angView));
    }

    QAngle_t GetViewAngles()
    {
        using fnGetViewAngles = std::int64_t(CS_FASTCALL*)(CCSGOInput*, std::int32_t);
        static auto oGetViewAngles = reinterpret_cast<fnGetViewAngles>(MEM::FindPattern(CLIENT_DLL, CS_XOR("4C 8B C1 85 D2 74 08 48 8D 05 ? ? ? ? C3")));

        #ifdef CS_PARANOID
        CS_ASSERT(oGetViewAngles != nullptr);
        #endif

        return *reinterpret_cast<QAngle_t*>(oGetViewAngles(this, 0));
    }
};
 
C++:
Expand Collapse Copy
class CCSGOInput
{
public:
    char pad228[0x251];
    bool bInThirdPerson;
    char pad229[0x6];
    QAngle_t angThirdPersonAngles;
};
So far I only have one of these and GetUserCmd no longer exists
 
C++:
Expand Collapse Copy
class CCSGOInput
{
public:
    char pad228[0x251];
    bool bInThirdPerson;
    char pad229[0x6];
    QAngle_t angThirdPersonAngles;
};
So far I only have one of these and GetUserCmd no longer exists

Thanks bro, how do I find this in reclassNET? When I scan patterns (CLIENT_DLL, "48 8B 0D? ? ? ? 4C 8D 8F ? ? ? 45 33 FF")), 0x3, 0x7)) and print the result, I go to this address in reclassNET and the first results are about CInputService in engine.dll? This doesn't seem right.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Does anyone know the updated structure of CCSGOInput?

Here's what I have:


C++:
Expand Collapse Copy
class CTinyMoveStepData
{
public:
    float flWhen; //0x0000
    MEM_PAD(0x4); //0x0004
    std::uint64_t nButton; //0x0008
    bool bPressed; //0x0010
    MEM_PAD(0x7); //0x0011
}; //Size: 0x0018

class CMoveStepButtons
{
public:
    std::uint64_t nKeyboardPressed; //0x0000
    std::uint64_t nMouseWheelheelPressed; //0x0008
    std::uint64_t nUnPressed; //0x0010
    std::uint64_t nKeyboardCopy; //0x0018
}; //Size: 0x0020

// @credits: www.unknowncheats.me/forum/members/2943409.html
class CExtendedMoveData : public CMoveStepButtons
{
public:
    float flForwardMove; //0x0020
    float flSideMove; //0x0024
    float flUpMove; //0x0028
    std::int32_t nMouseDeltaX; //0x002C
    std::int32_t nMouseDeltaY; //0x0030
    std::int32_t nAdditionalStepMovesCount; //0x0034
    CTinyMoveStepData tinyMoveStepData[12]; //0x0038
    Vector_t vecViewAngle; //0x0158
    std::int32_t nTargetHandle; //0x0164
}; //Size:0x0168

class CCSGOInput
{
public:
    MEM_PAD(0x250);
    CUserCmd arrCommands[MULTIPLAYER_BACKUP];
    MEM_PAD(0x99)
    bool bInThirdPerson;
    MEM_PAD(0x6);
    QAngle_t angThirdPersonAngles;
    MEM_PAD(0xE);
    std::int32_t nSequenceNumber;
    double dbSomeTimer;
    CExtendedMoveData currentMoveData;
    std::int32_t nWeaponSwitchTick;
    MEM_PAD(0x1C4);
    CExtendedMoveData* pExtendedMoveData;
    MEM_PAD(0x48);
    int32_t nAttackStartHistoryIndex1;
    int32_t nAttackStartHistoryIndex2;
    int32_t nAttackStartHistoryIndex3;

    CUserCmd* GetUserCmd()
    {
        return &arrCommands[nSequenceNumber % MULTIPLAYER_BACKUP];
    }

    void SetViewAngle(QAngle_t& angView)
    {
        // @ida: this got called before GetMatricesForView
        using fnSetViewAngle = std::int64_t(CS_FASTCALL*)(void*, std::int32_t, QAngle_t&);
        static auto oSetViewAngle = reinterpret_cast<fnSetViewAngle>(MEM::FindPattern(CLIENT_DLL, CS_XOR("85 D2 75 3F 48")));

        #ifdef CS_PARANOID
        CS_ASSERT(oSetViewAngle != nullptr);
        #endif

        oSetViewAngle(this, 0, std::ref(angView));
    }

    QAngle_t GetViewAngles()
    {
        using fnGetViewAngles = std::int64_t(CS_FASTCALL*)(CCSGOInput*, std::int32_t);
        static auto oGetViewAngles = reinterpret_cast<fnGetViewAngles>(MEM::FindPattern(CLIENT_DLL, CS_XOR("4C 8B C1 85 D2 74 08 48 8D 05 ? ? ? ? C3")));

        #ifdef CS_PARANOID
        CS_ASSERT(oGetViewAngles != nullptr);
        #endif

        return *reinterpret_cast<QAngle_t*>(oGetViewAngles(this, 0));
    }
};
CCSGOInput:
Expand Collapse Copy
class CCSGOInput
{
public:
    char pad_0000[592]; //0x0000
    bool bBlockShot; //0x0250
    bool bInThirdPerson; //0x0251
    char pad_0252[6]; //0x0252
    QAngle_t angThirdPersonAngles; //0x0258
    char pad_0264[20]; //0x0264
    uint64_t nKeyboardPressed; //0x0278
    uint64_t nMouseWheelheelPressed; //0x0280
    uint64_t nUnPressed; //0x0288
    uint64_t nKeyboardCopy; //0x0290
    float flForwardMove; //0x0298
    float flSideMove; //0x029C
    float flUpMove; //0x02A0
    Vector2D_t nMousePos; //0x02A4
    int32_t SubticksCount; //0x02AC
    CSubtickInput Subticks[12]; //0x02B0
    Vector_t vecViewAngle; //0x03D0
    int32_t nTargetHandle; //0x03DC
    char pad_03E0[560]; //0x03E0
    int32_t nAttackStartHistoryIndex1; //0x0610
    int32_t nAttackStartHistoryIndex2; //0x0614
    int32_t nAttackStartHistoryIndex3; //0x0618
    char pad_061C[4]; //0x061C
    int32_t MessageSize; //0x0620
    char pad_0624[4]; //0x0624
    C_CSInputMessage* Message; //0x0628
}

Getting CUserCmd:
Expand Collapse Copy
static CUserCMD* Get() {
        intptr_t pLocalPlayer = Address::GetLocalPlayerControl();
        static auto fnGetUserCmd = reinterpret_cast<CUserCMD*(__fastcall*)(void*, int)>(Memory::FindPattern("client.dll", "40 53 48 83 EC 20 8B DA 85 D2 78 3C E8 7F"));
        static auto fnGetUserCmdArray = reinterpret_cast<void*(__fastcall*)(void*, int)>(Memory::FindPattern("client.dll", "48 89 4C 24 08 41 54 41 57 48 83 EC 48 4C 63 E2"));
        static auto fnGetCommandIndex = reinterpret_cast<void*(__fastcall*)(void*, int*)>(Memory::FindPattern("client.dll", "40 53 48 83 EC 20 4C 8B 41 10 48 8B DA 48 8B 0D"));
        static void* pInstance = [I]reinterpret_cast<void*[/I]>(Memory::Relative(Memory::FindPattern("client.dll", "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B CF 4C 8B E8"), 3, 7));
        if (!pLocalPlayer) {
            return nullptr;
        }

        int pCommandIndex = 0;
        fnGetCommandIndex((void*)pLocalPlayer, &pCommandIndex);
        if (pCommandIndex == 0) {
            return nullptr;
        }

        int nCurrentCommand = pCommandIndex - 1;
        void* pUserCmdBase = fnGetUserCmdArray(pInstance, nCurrentCommand);
        if (!pUserCmdBase) {
            return nullptr;
        }

        int nSequenceNumber = [I]reinterpret_cast<int[/I]>(reinterpret_cast<uintptr_t>(pUserCmdBase) + 0x5C00);
        if (nSequenceNumber <= 0) {
            return nullptr;
        }

        return fnGetUserCmd((void*)pLocalPlayer, nSequenceNumber);
    }
 
hello
CCSGOInput:
Expand Collapse Copy
class CCSGOInput
{
public:
    char pad_0000[592]; //0x0000
    bool bBlockShot; //0x0250
    bool bInThirdPerson; //0x0251
    char pad_0252[6]; //0x0252
    QAngle_t angThirdPersonAngles; //0x0258
    char pad_0264[20]; //0x0264
    uint64_t nKeyboardPressed; //0x0278
    uint64_t nMouseWheelheelPressed; //0x0280
    uint64_t nUnPressed; //0x0288
    uint64_t nKeyboardCopy; //0x0290
    float flForwardMove; //0x0298
    float flSideMove; //0x029C
    float flUpMove; //0x02A0
    Vector2D_t nMousePos; //0x02A4
    int32_t SubticksCount; //0x02AC
    CSubtickInput Subticks[12]; //0x02B0
    Vector_t vecViewAngle; //0x03D0
    int32_t nTargetHandle; //0x03DC
    char pad_03E0[560]; //0x03E0
    int32_t nAttackStartHistoryIndex1; //0x0610
    int32_t nAttackStartHistoryIndex2; //0x0614
    int32_t nAttackStartHistoryIndex3; //0x0618
    char pad_061C[4]; //0x061C
    int32_t MessageSize; //0x0620
    char pad_0624[4]; //0x0624
    C_CSInputMessage* Message; //0x0628
}

Getting CUserCmd:
Expand Collapse Copy
static CUserCMD* Get() {
        intptr_t pLocalPlayer = Address::GetLocalPlayerControl();
        static auto fnGetUserCmd = reinterpret_cast<CUserCMD*(__fastcall*)(void*, int)>(Memory::FindPattern("client.dll", "40 53 48 83 EC 20 8B DA 85 D2 78 3C E8 7F"));
        static auto fnGetUserCmdArray = reinterpret_cast<void*(__fastcall*)(void*, int)>(Memory::FindPattern("client.dll", "48 89 4C 24 08 41 54 41 57 48 83 EC 48 4C 63 E2"));
        static auto fnGetCommandIndex = reinterpret_cast<void*(__fastcall*)(void*, int*)>(Memory::FindPattern("client.dll", "40 53 48 83 EC 20 4C 8B 41 10 48 8B DA 48 8B 0D"));
        static void* pInstance = [I]reinterpret_cast<void*[/I]>(Memory::Relative(Memory::FindPattern("client.dll", "48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B CF 4C 8B E8"), 3, 7));
        if (!pLocalPlayer) {
            return nullptr;
        }

        int pCommandIndex = 0;
        fnGetCommandIndex((void*)pLocalPlayer, &pCommandIndex);
        if (pCommandIndex == 0) {
            return nullptr;
        }

        int nCurrentCommand = pCommandIndex - 1;
        void* pUserCmdBase = fnGetUserCmdArray(pInstance, nCurrentCommand);
        if (!pUserCmdBase) {
            return nullptr;
        }

        int nSequenceNumber = [I]reinterpret_cast<int[/I]>(reinterpret_cast<uintptr_t>(pUserCmdBase) + 0x5C00);
        if (nSequenceNumber <= 0) {
            return nullptr;
        }

        return fnGetUserCmd((void*)pLocalPlayer, nSequenceNumber);
    }

Огромное спасибо, брат, ты лучший, ты спас мой чит <3
 
Назад
Сверху Снизу