Вопрос Крашит хук

  • Автор темы Автор темы M1fisto
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Сен 2023
Сообщения
30
Реакции
4
Вот такой вот хук что бы сделать авто ацепт
1746910483068.png


краш происходит сразу после того как event_name становится popup_accept_match_found

вот что возвращает
1746910578907.png


значения теже что и в оди при коле с popup_accept_match_found
1746910626606.png


непонимаю из за чего крашит
 
там еще один паттерн нужно юзать внутри.

C++:
Expand Collapse Copy
//F3 0F 11 5C 24 ? 48 89 54 24 client.dll 
void __fastcall c_hook::PopupAccptMatchFound(void* unk, const char* event_name, void* unk1, float unk2)
{
    last_hook = "PopupAccptMatchFound";

    static const auto og = g_memory->getOrig<decltype(&PopupAccptMatchFound)>("hkPopupAccptMatchFound");

    if (g_interface->m_engine->is_in_game())
        return og(unk, event_name, unk1, unk2);

    if (!settings.cfg().misc.auto_accept)
        return og(unk, event_name, unk1, unk2);

    if (std::string(event_name).find("popup_accept_match_found") != std::string::npos) {
        using set_player_ready_t = bool(__fastcall*)(void*, const char*);
        static const auto fn = reinterpret_cast<set_player_ready_t>(g_memory->find_pattern(CLIENT_DLL, "40 53 48 83 EC ? 48 8B DA 48 8D 15 ? ? ? ? 48 8B CB FF 15 ? ? ? ? 85 C0 75 ? 8D 50"));
        fn(nullptr, "");
    }

    return og(unk, event_name, unk1, unk2);
}
 
там еще один паттерн нужно юзать внутри.

C++:
Expand Collapse Copy
//F3 0F 11 5C 24 ? 48 89 54 24 client.dll
void __fastcall c_hook::PopupAccptMatchFound(void* unk, const char* event_name, void* unk1, float unk2)
{
    last_hook = "PopupAccptMatchFound";

    static const auto og = g_memory->getOrig<decltype(&PopupAccptMatchFound)>("hkPopupAccptMatchFound");

    if (g_interface->m_engine->is_in_game())
        return og(unk, event_name, unk1, unk2);

    if (!settings.cfg().misc.auto_accept)
        return og(unk, event_name, unk1, unk2);

    if (std::string(event_name).find("popup_accept_match_found") != std::string::npos) {
        using set_player_ready_t = bool(__fastcall*)(void*, const char*);
        static const auto fn = reinterpret_cast<set_player_ready_t>(g_memory->find_pattern(CLIENT_DLL, "40 53 48 83 EC ? 48 8B DA 48 8D 15 ? ? ? ? 48 8B CB FF 15 ? ? ? ? 85 C0 75 ? 8D 50"));
        fn(nullptr, "");
    }

    return og(unk, event_name, unk1, unk2);
}
если ты про плеер риди то тогда я его использую
1746982614623.png

вот он g_shemas.offsets().m_set_player_ready.as< fn_t >()(nullptr, ""); просто у меня патерны получаются все в одном месте
1746982712450.png

там еще один паттерн нужно юзать внутри.

C++:
Expand Collapse Copy
//F3 0F 11 5C 24 ? 48 89 54 24 client.dll
void __fastcall c_hook::PopupAccptMatchFound(void* unk, const char* event_name, void* unk1, float unk2)
{
    last_hook = "PopupAccptMatchFound";

    static const auto og = g_memory->getOrig<decltype(&PopupAccptMatchFound)>("hkPopupAccptMatchFound");

    if (g_interface->m_engine->is_in_game())
        return og(unk, event_name, unk1, unk2);

    if (!settings.cfg().misc.auto_accept)
        return og(unk, event_name, unk1, unk2);

    if (std::string(event_name).find("popup_accept_match_found") != std::string::npos) {
        using set_player_ready_t = bool(__fastcall*)(void*, const char*);
        static const auto fn = reinterpret_cast<set_player_ready_t>(g_memory->find_pattern(CLIENT_DLL, "40 53 48 83 EC ? 48 8B DA 48 8D 15 ? ? ? ? 48 8B CB FF 15 ? ? ? ? 85 C0 75 ? 8D 50"));
        fn(nullptr, "");
    }

    return og(unk, event_name, unk1, unk2);
}
а я тупой у меня патерн не такой как у тебя хотя если смотреть через иду он ведет вроде туда куда надо, ща с твоим попробую
l
там еще один паттерн нужно юзать внутри.

C++:
Expand Collapse Copy
//F3 0F 11 5C 24 ? 48 89 54 24 client.dll
void __fastcall c_hook::PopupAccptMatchFound(void* unk, const char* event_name, void* unk1, float unk2)
{
    last_hook = "PopupAccptMatchFound";

    static const auto og = g_memory->getOrig<decltype(&PopupAccptMatchFound)>("hkPopupAccptMatchFound");

    if (g_interface->m_engine->is_in_game())
        return og(unk, event_name, unk1, unk2);

    if (!settings.cfg().misc.auto_accept)
        return og(unk, event_name, unk1, unk2);

    if (std::string(event_name).find("popup_accept_match_found") != std::string::npos) {
        using set_player_ready_t = bool(__fastcall*)(void*, const char*);
        static const auto fn = reinterpret_cast<set_player_ready_t>(g_memory->find_pattern(CLIENT_DLL, "40 53 48 83 EC ? 48 8B DA 48 8D 15 ? ? ? ? 48 8B CB FF 15 ? ? ? ? 85 C0 75 ? 8D 50"));
        fn(nullptr, "");
    }

    return og(unk, event_name, unk1, unk2);
}
да с твоим патерном все завелось спасибо
 
Последнее редактирование:
кста может кто то шарит как сделать что бы кнопка принятия тоже прожималась ? , просто авто ацепт та сам работает но визуально кнопка не жмется
 
кста может кто то шарит как сделать что бы кнопка принятия тоже прожималась ? , просто авто ацепт та сам работает но визуально кнопка не жмется
всмысле не жмется это ты про то что на последнем игроке это ты и тогда прожимается? Так это дефолт, правда в некоторых читах можно указывать таймер на нажатие, как не знаю.
кста может кто то шарит как сделать что бы кнопка принятия тоже прожималась ? , просто авто ацепт та сам работает но визуально кнопка не жмется
посмотри куда float ведет в иде
 
попробуй эту сигнатуру (ida: @client.dll; "F3 0F 11 5C 24 ? 48 89 54 24") для handle_panorama_event
 
Д
попробуй эту сигнатуру (ida: @client.dll; "F3 0F 11 5C 24 ? 48 89 54 24") для handle_panorama_event
Я уже исправил, да проблема была в патерне. Щас вот смотрю и пробую сделать что бы он ацептил сразу как кнопка появилась, а не последним.
 
Д

Я уже исправил, да проблема была в патерне. Щас вот смотрю и пробую сделать что бы он ацептил сразу как кнопка появилась, а не последним.

хуй ты там просто так сделаешь, автоацепт такой полностью кривой и почти не рабочий, нормально сделать это голову включить надо и хукнуть v8 хедл евентов
 
Назад
Сверху Снизу