Вопрос Ayyware Hooking SceneEnd

Забаненный
Статус
Оффлайн
Регистрация
24 Авг 2017
Сообщения
30
Реакции[?]
13
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
so yeah i show u guys how to hook scene end for ur ayy pasta, then if u want add fake angle chams urself

first of all define our scene end, open ur hooks.cpp
and define it here


Код:
typedef void(__fastcall* hSceneEnd)(void*, void*);
hSceneEnd oSceneEnd;
Now it's time for init
Go to ur
Код:
tvoid Hooks::Initialise()

Код:
VMTRenderView.Initialise((DWORD*)Interfaces::RenderView);
oSceneEnd = (hSceneEnd)VMTRenderView.HookMethod((DWORD)&Hooked_SceneEnd, 9);
b1g hard part, hook for scene end
Still hooks.cpp, paste code here



Код:
void __fastcall Hooked_SceneEnd(void* thisptr, void* edx);
And above ur painttraverse

Код:
void __fastcall Hooked_SceneEnd(void* thisptr, void* edx)
{
    static auto scene_end_o = (hSceneEnd)Hooks::VMTRenderView.GetOriginalFunction(9);
    scene_end_o(thisptr, edx);


}
Now, search for ur IClientUnknown class in entities.h, it should looks like mine


Код:
class IClientUnknown
{
public:
    ICollideable* GetCollideable()
    {
        return (ICollideable*)((DWORD)this + 0x318);
    }
    virtual IClientNetworkable* GetClientNetworkable() = 0;
    virtual IClientRenderable*  GetClientRenderable() = 0;
    virtual IClientEntity*      GetIClientEntity() = 0;
    virtual IClientEntity*      GetBaseEntity() = 0;
    virtual IClientThinkable*   GetClientThinkable() = 0;

    void* GetClientRenderables()
    {
        return reinterpret_cast<void*>(this + 0x4);
    }

    IClientRenderable* GetClientRenderable2()
    {
        return reinterpret_cast<IClientRenderable*>(this + 0x4);
    }
};
Use one methond that u like, callvmt or GetVirtualFunction
time for callvmt func in MiscDefinitions.h



Код:
template< typename Function > Function call_vfunc(PVOID Base, DWORD Index)
{
    PDWORD* VTablePointer = (PDWORD*)Base;
    PDWORD VTableFunctionBase = *VTablePointer;
    DWORD dwAddress = VTableFunctionBase[Index];
    return (Function)(dwAddress);
}
And materials.h



Код:
template <typename Fn> __forceinline Fn GetVirtualFunction(void* pClassBase, int nFunctionIndex)
{
    return (Fn)((PDWORD)*(PDWORD*)pClassBase)[nFunctionIndex];
}
 
Сверху Снизу