Исходник How to get cmds in 2024

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
18 Сен 2023
Сообщения
15
Реакции
18
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В общем решил я тут под пиво сделать приколы
Но как выяснилось кс2 перелопатили на 180 градусов
Если зайти в CCSGOInput::CreateMove по 5 индексу, вместо хранения цмд в инпуте можно увидеть вот это чудище:
1735322066385.png

Вальве решили хранить их отдельно и если при получении их нет, создавать через memalloc

Так вот, первым делом фиксим класс инпута, раз все по другому:
Код:
Expand Collapse Copy
class c_csgo_input
{
public:
    char pad_0000[592]; //0x0000
    bool N0000013B; //0x0250
    bool in_third_person; //0x0251
    char pad_0252[6]; //0x0252
    vector3d thirdperson_angles;
};

После чего уже можно делать магию в креатмуве
Для этого нужно получить массив команд и просто обратиться к ним через магический оффсет (я хз что это за рофлы но ВАЛВ)
Код:
Expand Collapse Copy
        auto local_player_controller = sdk::entity_system->get_local_player_controller();
        if (local_player_controller.raw() != 0) {

            int index{};
            sdk::entity_system->get_entity_index(local_player_controller.as<void*>(), &index);

            if (index != -1)
                index -= 1;

            const auto user_commands = **patterns::get_commands.as<c_user_cmd***>();
            const auto sequence_number = *(int*)((uintptr_t)user_commands + 0x5C00);

            c_user_cmd* current_cmd = &user_commands[sequence_number % 150];

            if (current_cmd)
            {
                // magic
            }
        }

И у вас готовы кмдшки
Все паттерны можно найти самому за 3 клика, это все в одной функции лежит....
 
А можно хукнуть Create Move с помощью этой сигнатурки - "48 8B C4 4C 89 40 18 48 89 48 08 55 53 56 57 48 8D A8 E8 FE FF FF"
и получить кмдшки 3-им параметром
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В общем решил я тут под пиво сделать приколы
Но как выяснилось кс2 перелопатили на 180 градусов
Если зайти в CCSGOInput::CreateMove по 5 индексу, вместо хранения цмд в инпуте можно увидеть вот это чудище:
Посмотреть вложение 294008
Вальве решили хранить их отдельно и если при получении их нет, создавать через memalloc

Так вот, первым делом фиксим класс инпута, раз все по другому:
Код:
Expand Collapse Copy
class c_csgo_input
{
public:
    char pad_0000[592]; //0x0000
    bool N0000013B; //0x0250
    bool in_third_person; //0x0251
    char pad_0252[6]; //0x0252
    vector3d thirdperson_angles;
};

После чего уже можно делать магию в креатмуве
Для этого нужно получить массив команд и просто обратиться к ним через магический оффсет (я хз что это за рофлы но ВАЛВ)
Код:
Expand Collapse Copy
        auto local_player_controller = sdk::entity_system->get_local_player_controller();
        if (local_player_controller.raw() != 0) {

            int index{};
            sdk::entity_system->get_entity_index(local_player_controller.as<void*>(), &index);

            if (index != -1)
                index -= 1;

            const auto user_commands = **patterns::get_commands.as<c_user_cmd***>();
            const auto sequence_number = *(int*)((uintptr_t)user_commands + 0x5C00);

            c_user_cmd* current_cmd = &user_commands[sequence_number % 150];

            if (current_cmd)
            {
                // magic
            }
        }

И у вас готовы кмдшки
Все паттерны можно найти самому за 3 клика, это все в одной функции лежит....
круто, все это лежит в паблике ты ничего нового не открыл и не сделал
опай ты бы хотя бы саморазвитием для начала занялся елки палки
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
круто, все это лежит в паблике ты ничего нового не открыл и не сделал
опай ты бы хотя бы саморазвитием для начала занялся елки палки
мне че теперь реально доказывать что я умный? нахуй шел
 
круто, все это лежит в паблике ты ничего нового не открыл и не сделал
опай ты бы хотя бы саморазвитием для начала занялся елки палки
Та ты то откуда понял что это опай
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мне че теперь реально доказывать что я умный? нахуй шел
кому ты там что докажешь
думаю не стоит что ты продавал пасту легендвара в4 только на собственном сдк и с какими то шизоидным кодом
да и кс2 ты осилить нормально не смог и вернулся снова в ксго :LUL:
 
те самые цмдшки в контроллере просто отдыхают :kissingsmiling:
 
Код:
Expand Collapse Copy
**patterns::get_commands.as<c_user_cmd***>()
can you reveal whats that? i cant seem to find pattern for it
 
Код:
Expand Collapse Copy
CUserCmd* GetUserCmd(CCSPlayerController* local_controller)
    {
        static auto get_command_index = reinterpret_cast<void*(__fastcall*)(void*, int*)>(MEM::GetAbsoluteAddress(MEM::FindPattern(CLIENT_DLL, "E8 ? ? ? ? 8B 8D ? ? ? ? 8D 51"), 1, 0));
        if (!get_command_index)
            return nullptr;

        int index = 0;
        get_command_index(local_controller, &index);
        int command_index = index - 1;

        if (command_index == -1)
            command_index = 0xFFFFFFFFLL;

        static auto get_user_cmd_base = reinterpret_cast<void*(__fastcall*)(void*, int)>(MEM::GetAbsoluteAddress(MEM::FindPattern(CLIENT_DLL, "E8 ? ? ? ? 48 8B CF 4C 8B E8 44 8B B8"), 1, 0));
        if (!get_user_cmd_base)
            return nullptr;

        static void* cmd_base_address = *reinterpret_cast<void**>(MEM::ResolveRelativeAddress(MEM::FindPattern(CLIENT_DLL, "48 8B 0D ? ? ? ? E8 ? ? ? ? 48 8B CF 4C 8B E8"), 0x3, 0x7));
        if (!cmd_base_address)
            return nullptr;

        auto user_cmd_base = get_user_cmd_base(cmd_base_address, command_index);
        if (!user_cmd_base)
            return nullptr;

        DWORD sequence_number = *reinterpret_cast<DWORD*>((uintptr_t)user_cmd_base + 0x5C00);

        static auto get_user_cmd = reinterpret_cast<CUserCmd*(__fastcall*)(void*, DWORD)>(MEM::GetAbsoluteAddress(MEM::FindPattern(CLIENT_DLL, "E8 ? ? ? ? 48 8B 0D ? ? ? ? 45 33 E4 48 89 44 24"), 1, 0));
        if (!get_user_cmd)
            return nullptr;

        auto user_cmd = get_user_cmd(local_controller, sequence_number);
        return user_cmd;
    }
 
Назад
Сверху Снизу