Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Hook dx11

  • Автор темы Автор темы Jacher
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
5 Фев 2022
Сообщения
51
Реакции
12
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дайте нормальный хук на dx11 wf, чтобы меню сделать))
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Спасибо.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не понимаю смысла юзать вообще имгуи, это база для пастеров, не более, так же в кс, его можно тупо не юзать, а делать на коде движка игры, ибо просто на библиотеках DX. И ты писал про hook, представляешь как выглядит hook? То что тебе скинули, там вроде я не увидел кода который ты запрашивал!

Код:
Expand Collapse Copy
HRESULT D3D11Present(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags) {

    return hkInterFace->GetOriginalFunction<HRESULT(WINAPI*)(IDXGISwapChain*, UINT, UINT)>(8)(pSwapChain, SyncInterval, Flags);
}

bool Update(ISystem* pSyspem, ESystemUpdateFlags pUodFlag, int nPauseMode) {
    if (pMainDeterminative->GetClasses(EGameConnection::EWeedingOutEmptiness)) {

    }
    return hkGame->GetOriginalFunction<bool(WINAPI*)(ISystem*, ESystemUpdateFlags, int)>(4)(pSyspem, pUodFlag, nPauseMode);
}


Код:
Expand Collapse Copy
Hook: Его можно использовать любой, у него нет зависимости какой dx.
Если что код урезал, тебе этого хватит для полноценной работы!

struct MultiHooked
{
public:
    MultiHooked(void) = default;
    MultiHooked(void* baseclass)
    {
        this->baseclass = static_cast<uintptr_t**>(baseclass);
        while (static_cast<uintptr_t*>(*this->baseclass)[this->total_functions])
            ++this->total_functions;

        const size_t table_size = total_functions * sizeof(uintptr_t);
        this->original_vft = *this->baseclass;
        this->current_vft = new uintptr_t[total_functions];
        CMCrt::memcpy(this->current_vft, this->original_vft, table_size);
        *this->baseclass = this->current_vft;
    };
    ~MultiHooked() { *this->baseclass = this->original_vft; };

    template <typename Fn = void*> inline const Fn GetOriginalFunction(size_t function_index)
    {
        return reinterpret_cast<Fn>(this->original_vft[function_index]);
    }

    inline bool HookFunction(void* new_function, const size_t function_index)
    {
        if (function_index > this->total_functions)
            return false;

        this->current_vft[function_index] = uintptr_t(new_function);
        return true;
    }
    inline bool UnhookFunction(const size_t function_index)
    {
        if (function_index > this->total_functions)
            return false;

        this->current_vft[function_index] = this->original_vft[function_index];
        return true;
    }
private:
    uintptr_t** baseclass = nullptr;
    uintptr_t* current_vft = nullptr;
    uintptr_t* original_vft = nullptr;
    size_t total_functions = 0;
};
 
Не понимаю смысла юзать вообще имгуи, это база для пастеров, не более, так же в кс, его можно тупо не юзать, а делать на коде движка игры, ибо просто на библиотеках DX
Жаль, что тебе нужно будет снимать жесткую еблю с библиотеками DX помимо имгуя, а еще хуже на рендере самой игры...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Жаль, что тебе нужно будет снимать жесткую еблю с библиотеками DX помимо имгуя, а еще хуже на рендере самой игры...
Почему хуже рендерить самой игрой? Нету разницы как ты рендеришь
 
Назад
Сверху Снизу