Бесконечный бег как в HideHook

Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приветствую. Решил поделится легкой функцией из всеми любимого софта HideHook "Бесконечный бег"
Гайд делаю исключительно на правах авторства))) так как с Максимом, aka JungleCode я поделился этим еще месяца три назад.
И вообще я не понимаю, почему ее никто еще сюда не слил, либо вовсе просто не делал :roflanPominki:

Что
представляет собой данная функция?
У локального персонажа имеется количество стамины (т.е полоска выносливости) и так называемый на ней "дедлайн", после достижения которого, наш персонаж делать быстрые движения перестанет и ему потребуется время для восстановления. Однако, с помощью данного ниже кода, вы сможете отключить усталость вашего актора.

В чем
преимущество использования данной хери?
Поскольку вашему персонажу уже не будет нужным останавливаться после того, как полоска выносливости перейдет за черту, он сможет бежать дальше. Это ломает некоторые тайминги, те же самые спецоперации или обычный бег на большие расстояния.

Приступим к написанию кода в заголовочном файле "Classes.h"

C++:
template <typename Virtual>    
Virtual fVirtual(PVOID Index, int State) { return (*(Virtual**)Index)[State / 8]; }

class IActor
{
    public:
    void InfinityRun(float status = 0.f){
        *(float*)((DWORD64)this + 0x1008) = status; // minStaminaToStartHaste
    }
};
class IGameFramework
{
    public:
    IActor* GetClientActor()
    {
        IActor* nActor = 0;
        if (fVirtual<bool(__fastcall*)(PVOID, IActor**)>(this, 0x470)(this, &nActor))
            nActor = 0;
        return nActor;
   
    }
    static IGameFramework* StaticFramework()
    {
        return *reinterpret_cast<IGameFramework**>(0x142170CB8);
    }
};
И теперь напишем саму функцию в файле "Function.h"
C++:
void Intialize()
{
    IGameFramework* pFramework = IGameFramework::StaticFramework();
        if (!pFramework) return;
    IActor* pActor = pFramework->GetClientActor();
        if (!pActor) return;
    pActor->InfinityRun();
}
 
Последнее редактирование:
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приветствую. Решил поделится легкой функцией из всеми любимого софта HideHook "Бесконечный бег"
Гайд делаю исключительно на правах авторства))) так как с Максимом, aka JungleCode я поделился этим еще месяца три назад.
И вообще я не понимаю, почему ее никто еще сюда не слил, либо вовсе просто не делал :roflanPominki:

Что
представляет собой данная функция?
У локального персонажа имеется количество стамины (т.е полоска выносливости) и так называемый на ней "дедлайн", после достижения которого, наш персонаж делать быстрые движения перестанет и ему потребуется время для восстановления. Однако, с помощью данного ниже кода, вы сможете отключить усталость вашего актора.

В чем
преимущество использования данной хери?
Поскольку вашему персонажу уже не будет нужным останавливаться после того, как полоска выносливости перейдет за черту, он сможет бежать дальше. Это ломает некоторые тайминги, те же самые спецоперации или обычный бег на большие расстояния.

Приступим к написанию кода в заголовочном файле "Classes.h"

C++:
template <typename Virtual>   
Virtual fVirtual(PVOID Index, int State) { return (*(Virtual**)Index)[State / 8]; }

class IActor
{
    public:
    void InfinityRun(float status = 0.f){
        *(float*)((DWORD64)this + 0x1008) = status; // minStaminaToStartHaste
    }
};
class IGameFramework
{
    public:
    IActor* GetClientActor()
    {
        IActor* nActor = 0;
        if (fVirtual<bool(__fastcall*)(PVOID, IActor**)>(this, 0x470)(this, &nActor))
            nActor = 0;
        return nActor;
  
    }
    static IGameFramework* StaticFramework()
    {
        return *reinterpret_cast<IGameFramework**>(0x142170CB8);
    }
};
И теперь напишем саму функцию в файле "Function.h"
C++:
void Intialize()
{
    IGameFramework* pFramework = IGameFramework::StaticFramework();
        if (!pFramework) return;
    IActor* pActor = pFramework->GetClientActor();
        if (!pActor) return;
    pActor->InfinityRun();
}
Странно, я это делал, и не работало. Перс переставал бежать.
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кто нибудь может скинуть готовый хак
В чем проблема добавить в свой проект файл Main.cpp и написать точку входа, затем все заинжектить с помощью инжектора:

C++:
// Специально для человека выше код точки входа динамической библиотеки (без использования хука):
#include "Function.h"
bool Thread() // Бесконечный поток нашей функции что-бы она отработала не один раз.
{
    while(true)
    {
        Intialize(); // Функция из кода выше
    }
    return true; // Возвращаем логическую правду, что бы поток не закрылся и не крашнуло игру.
}
bool DllMain(void* hmod, unsigned long dword, LPVOID*) // Точка входа
{
    if (dword == DLL_PROCESS_ATTACH) // Если удалось загрузить модуль, делаем...
    {
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Thread, 0, 0, 0);
    }
    return true; // Возвращаем логическую правду
}
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу