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

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

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

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

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

C++:
Expand Collapse Copy
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++:
Expand Collapse Copy
void Intialize()
{
    IGameFramework* pFramework = IGameFramework::StaticFramework();
        if (!pFramework) return;
    IActor* pActor = pFramework->GetClientActor();
        if (!pActor) return;
    pActor->InfinityRun();
}
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приветствую. Решил поделится легкой функцией из всеми любимого софта HideHook "Бесконечный бег"
Гайд делаю исключительно на правах авторства))) так как с Максимом, aka @JungleCode я поделился этим еще месяца три назад.
И вообще я не понимаю, почему ее никто еще сюда не слил, либо вовсе просто не делал :roflanPominki:

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

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

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

C++:
Expand Collapse Copy
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++:
Expand Collapse Copy
void Intialize()
{
    IGameFramework* pFramework = IGameFramework::StaticFramework();
        if (!pFramework) return;
    IActor* pActor = pFramework->GetClientActor();
        if (!pActor) return;
    pActor->InfinityRun();
}
Странно, я это делал, и не работало. Перс переставал бежать.
 
Снимок.JPG

:CoolStoryBob:
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кто нибудь может скинуть готовый хак
В чем проблема добавить в свой проект файл Main.cpp и написать точку входа, затем все заинжектить с помощью инжектора:

C++:
Expand Collapse Copy
// Специально для человека выше код точки входа динамической библиотеки (без использования хука):
#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; // Возвращаем логическую правду
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу