Hook dx11

Забаненный
Статус
Оффлайн
Регистрация
5 Фев 2022
Сообщения
51
Реакции[?]
12
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дайте нормальный хук на dx11 wf, чтобы меню сделать))
 
Пользователь
Статус
Оффлайн
Регистрация
15 Апр 2020
Сообщения
320
Реакции[?]
79
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
5 Фев 2022
Сообщения
51
Реакции[?]
12
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Спасибо.
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не понимаю смысла юзать вообще имгуи, это база для пастеров, не более, так же в кс, его можно тупо не юзать, а делать на коде движка игры, ибо просто на библиотеках DX. И ты писал про hook, представляешь как выглядит hook? То что тебе скинули, там вроде я не увидел кода который ты запрашивал!

Код:
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);
}

Код:
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;
};
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
Не понимаю смысла юзать вообще имгуи, это база для пастеров, не более, так же в кс, его можно тупо не юзать, а делать на коде движка игры, ибо просто на библиотеках DX
Жаль, что тебе нужно будет снимать жесткую еблю с библиотеками DX помимо имгуя, а еще хуже на рендере самой игры...
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Жаль, что тебе нужно будет снимать жесткую еблю с библиотеками DX помимо имгуя, а еще хуже на рендере самой игры...
Почему хуже рендерить самой игрой? Нету разницы как ты рендеришь
 
Сверху Снизу