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

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

Here's what I have:


C++:
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));
    }
};
 
Начинающий
Статус
Онлайн
Регистрация
9 Фев 2023
Сообщения
25
Реакции[?]
2
Поинты[?]
2K
C++:
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
 
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
C++:
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.
 
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2023
Сообщения
25
Реакции[?]
3
Поинты[?]
3K
Does anyone know the updated structure of CCSGOInput?

Here's what I have:


C++:
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:
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:
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);
    }
 
Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
hello
CCSGOInput:
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:
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
 
Сверху Снизу