Files
2026-03-08 16:19:24 -06:00

182 lines
6.2 KiB
C++

#pragma once
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <Windows.h>
#include <d3d11.h>
#include <dwmapi.h>
#include <Psapi.h>
#include <shellapi.h>
#include <tlhelp32.h>
#include <xinput.h>
#include <array>
#include <atomic>
#include <cstdint>
#include <functional>
#include <memory>
#include <mutex>
#include <string>
#include <unordered_map>
#include <vector>
#include "imgui.h"
#include "imgui_impl_dx11.h"
#include "imgui_impl_win32.h"
extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
namespace Binary {
constexpr uintptr_t kImageBase = 0x180000000ull;
constexpr uintptr_t kDataBase = 0x1803C5000ull;
constexpr uintptr_t kIatBaseRva = 0x000B1000ull;
constexpr uintptr_t kGConfigPanelPtrOffset = 0x15D8ull;
constexpr uintptr_t kShowPanelFlagOffset = 0x245Cull;
constexpr uintptr_t kActiveTabOffset = 0x1F68ull;
constexpr uintptr_t kLanguageIndexOffset = 0x27B0ull;
} // namespace Binary
namespace RVA {
constexpr uint32_t DllMainEntry = 0x00001000;
constexpr uint32_t LoaderThread = 0x00005000;
constexpr uint32_t StartupMain = 0x000A9190;
constexpr uint32_t GABypassPatch = 0x000A9120;
constexpr uint32_t ModuleManagerInit = 0x0009AC10;
constexpr uint32_t OverlayWindowInit = 0x000827A0;
constexpr uint32_t WndProc = 0x000826A0;
constexpr uint32_t D3D11Reinit = 0x000825B0;
constexpr uint32_t ImGuiWin32WndProcHandler = 0x00057720;
constexpr uint32_t HookMgrCreateHook = 0x000A9CC8;
constexpr uint32_t HookMgrRemoveHook = 0x000A9E8C;
constexpr uint32_t HookMgrEnableHook = 0x000A9A9C;
constexpr uint32_t HookMgrAcquireSpinlock = 0x000A9C88;
constexpr uint32_t SettingsTabRender = 0x0009A4F0;
constexpr uint32_t SidebarRender = 0x0007F8F0;
} // namespace RVA
namespace IL2CPP {
constexpr uintptr_t GameObject_GetComponentByIndex = 0x1C48;
constexpr uintptr_t il2cpp_domain_get_assemblies_A = 0x1C50;
constexpr uintptr_t Component_GetComponent_Transform = 0x1C58;
constexpr uintptr_t Transform_get_localScale = 0x1C60;
constexpr uintptr_t Transform_get_rotation = 0x1C68;
constexpr uintptr_t il2cpp_object_get_class = 0x1C70;
constexpr uintptr_t il2cpp_class_get_method_from_name = 0x1C78;
constexpr uintptr_t Transform_get_localPosition = 0x1C80;
constexpr uintptr_t Transform_get_position = 0x1C88;
constexpr uintptr_t Transform_set_localPosition = 0x1C90;
constexpr uintptr_t GameObject_SetActive = 0x1C98;
constexpr uintptr_t GameObject_get_transform = 0x1CA0;
constexpr uintptr_t Transform_set_rotation = 0x1CA8;
constexpr uintptr_t GameObject_get_activeInHierarchy = 0x1CB0;
constexpr uintptr_t GameObject_get_tag = 0x1CB8;
constexpr uintptr_t GameObject_get_name = 0x1CC0;
constexpr uintptr_t GameObject_get_layer = 0x1CC8;
constexpr uintptr_t GameObject_get_scene = 0x1CD0;
constexpr uintptr_t Game_SkillBuff_A = 0x1CD8;
constexpr uintptr_t GetEntityName = 0x1CE0;
constexpr uintptr_t Component_GetComponents = 0x1CE8;
constexpr uintptr_t Component_GetComponentsInChildren = 0x1CF0;
constexpr uintptr_t Game_SkillSlot_A = 0x1CF8;
constexpr uintptr_t Object_get_name = 0x1D00;
constexpr uintptr_t Component_GetType_A = 0x1D08;
constexpr uintptr_t Component_GetType_B = 0x1D10;
constexpr uintptr_t Game_SkillSlot_B = 0x1D18;
constexpr uintptr_t Game_Combat_HitA = 0x1D20;
constexpr uintptr_t GetEntityManager = 0x1D28;
constexpr uintptr_t Game_Combat_HitB = 0x1D30;
constexpr uintptr_t Game_Movement_PhysA = 0x1D38;
constexpr uintptr_t Game_Movement_PhysB = 0x1D40;
constexpr uintptr_t Application_set_targetFrameRate = 0x1D48;
constexpr uintptr_t SceneManager_GetActiveScene = 0x1D50;
constexpr uintptr_t CinemachineBrain_GetActiveVCam = 0x1D58;
constexpr uintptr_t Game_EntityState_A = 0x1D60;
constexpr uintptr_t Transform_set_localScale = 0x1D68;
constexpr uintptr_t Rigidbody_get_velocity = 0x1D70;
constexpr uintptr_t Rigidbody_set_velocity = 0x1D78;
constexpr uintptr_t Object_Destroy = 0x1D80;
constexpr uintptr_t Transform_set_position = 0x1D88;
constexpr uintptr_t Game_EntityState_B = 0x1D90;
constexpr uintptr_t Input_GetAxis_MouseX = 0x1D98;
constexpr uintptr_t Game_PlayerState_A = 0x1DA0;
constexpr uintptr_t Game_PlayerState_B = 0x1DA8;
constexpr uintptr_t Game_PlayerHealthStat = 0x1DB0;
constexpr uintptr_t Camera_get_main = 0x1DC0;
constexpr uintptr_t GameObject_FindObjectOfType = 0x1DC8;
constexpr uintptr_t Game_SkillAction_C = 0x1DD8;
constexpr uintptr_t Camera_get_fieldOfView = 0x1DE8;
constexpr uintptr_t Game_EntityState_C = 0x1DF0;
constexpr uintptr_t Rigidbody_AddForce = 0x1E00;
constexpr uintptr_t CharCtrl_set_enabled = 0x1E08;
constexpr uintptr_t Game_SkillAction_F = 0x1E10;
constexpr uintptr_t Game_SkillAction_G = 0x1E18;
constexpr uintptr_t GetCharacterController = 0x1E20;
constexpr uintptr_t TMPro_set_text = 0x1E28;
constexpr uintptr_t UnityUI_Text_set_text = 0x1E30;
constexpr uintptr_t Game_SkillAction_I = 0x1E38;
constexpr uintptr_t Game_SkillAction_J = 0x1E40;
constexpr uintptr_t Game_EntityActor_D = 0x1E48;
constexpr uintptr_t Game_SkillAction_K = 0x1E50;
constexpr uintptr_t Game_SkillAction_L = 0x1E58;
constexpr uintptr_t Game_EntityActor_E = 0x1E60;
constexpr uintptr_t Game_EntityActor_F = 0x1E68;
constexpr uintptr_t il2cpp_domain_get = 0x1E70;
constexpr uintptr_t il2cpp_assembly_get_image = 0x1E78;
constexpr uintptr_t il2cpp_domain_get_assemblies_B = 0x1E80;
} // namespace IL2CPP
struct Vec3 {
float x = 0.0f;
float y = 0.0f;
float z = 0.0f;
};
struct Quat {
float x = 0.0f;
float y = 0.0f;
float z = 0.0f;
float w = 1.0f;
};
enum class Language : uint32_t {
English = 0,
ZhCN = 1,
};
enum class MainTab : int {
About = 0,
Player = 1,
ESP = 2,
World = 3,
Visual = 4,
Settings = 5,
};
struct RuntimeConfig {
std::atomic<bool> running{false};
std::atomic<bool> show_panel{true};
std::atomic<bool> il2cpp_thread_attached{false};
std::atomic<MainTab> active_tab{MainTab::About};
std::atomic<Language> language{Language::English};
std::atomic<DWORD> game_thread_id{0};
uintptr_t game_assembly_base = 0;
HWND game_hwnd = nullptr;
HWND overlay_hwnd = nullptr;
};
extern RuntimeConfig g_Runtime;
template <typename Fn>
inline Fn BitCastFn(void* ptr) {
return reinterpret_cast<Fn>(ptr);
}