Prepare symbols for process wrapping

This commit is contained in:
momo5502 2022-11-09 17:10:08 +01:00
parent 5c326b35d9
commit c0be5d7cad
4 changed files with 44 additions and 38 deletions

View File

@ -1,6 +1,7 @@
#pragma once
#include "structs.hpp"
#include "loader/component_loader.hpp"
namespace game
{
@ -15,13 +16,13 @@ namespace game
{
public:
symbol(const size_t address)
: address_(reinterpret_cast<T*>(address))
: address_(address)
{
}
T* get() const
{
return address_;
return reinterpret_cast<T*>(get_game_address(this->address_));
}
operator T*() const
@ -35,7 +36,7 @@ namespace game
}
private:
T* address_;
size_t address_;
};
// Global game definitions

View File

@ -1,7 +1,6 @@
#pragma once
#include "structs.hpp"
#include "loader/component_loader.hpp"
#define WEAK __declspec(selectany)
@ -10,18 +9,18 @@ namespace game
// CL
WEAK symbol<void(int controllerIndex, XSESSION_INFO* hostInfo, const netadr_t* addr, int numPublicSlots,
int numPrivateSlots, const char* mapname, const char* gametype)> CL_ConnectFromLobby
{0x14134C570_g};
{0x14134C570};
// Com
WEAK symbol<void(int channel, unsigned int label, const char* fmt, ...)> Com_Printf{0x1421499C0_g};
WEAK symbol<void(const char* file, int line, int code, const char* fmt, ...)> Com_Error_{0x1420F8BD0_g};
WEAK symbol<bool(eModes mode)> Com_SessionMode_IsMode{0x1420F7DD0_g};
WEAK symbol<void(int channel, unsigned int label, const char* fmt, ...)> Com_Printf{0x1421499C0};
WEAK symbol<void(const char* file, int line, int code, const char* fmt, ...)> Com_Error_{0x1420F8BD0};
WEAK symbol<bool(eModes mode)> Com_SessionMode_IsMode{0x1420F7DD0};
WEAK symbol<void(int localClientNum, const char* text)> Cbuf_AddText{0x1420EC8B0_g};
WEAK symbol<void(int localClientNum, const char* text)> Cbuf_AddText{0x1420EC8B0};
WEAK symbol<void(const char* cmdName, xcommand_t function, cmd_function_s* allocedCmd)> Cmd_AddCommandInternal{
0x1420ED530_g
};
WEAK symbol<void(char* text, int maxSize)> Con_GetTextCopy{0x14133A7D0_g};
WEAK symbol<void(char* text, int maxSize)> Con_GetTextCopy{0x14133A7D0};
// DB
WEAK symbol<void(XZoneInfo* zoneInfo, uint32_t zoneCount, bool sync, bool suppressSync)> DB_LoadXAssets{
@ -29,27 +28,27 @@ namespace game
};
// Live
WEAK symbol<bool(uint64_t, int*, bool)> Live_GetConnectivityInformation{0x141E0C410_g};
WEAK symbol<bool(uint64_t, int*, bool)> Live_GetConnectivityInformation{0x141E0C410};
// MSG
WEAK symbol<uint8_t(msg_t* msg)> MSG_ReadByte{0x142155EB0_g};
WEAK symbol<uint8_t(msg_t* msg)> MSG_ReadByte{0x142155EB0};
// NET
WEAK symbol<bool(netsrc_t sock, int length, const void* data, const netadr_t* to)> NET_SendPacket{0x142332F70_g};
WEAK symbol<bool(char const*, netadr_t*)> NET_StringToAdr{0x1421731E0_g};
WEAK symbol<bool(netadr_t*, char const*)> NetAdr_InitFromString{0x142332F70_g};
WEAK symbol<bool(netsrc_t sock, int length, const void* data, const netadr_t* to)> NET_SendPacket{0x142332F70};
WEAK symbol<bool(char const*, netadr_t*)> NET_StringToAdr{0x1421731E0};
WEAK symbol<bool(netadr_t*, char const*)> NetAdr_InitFromString{0x142332F70};
// Sys
WEAK symbol<int()> Sys_Milliseconds{0x142333430_g};
WEAK symbol<void()> Sys_ShowConsole{0x142333F80_g};
WEAK symbol<TLSData*()> Sys_GetTLS{0x142184210_g};
WEAK symbol<int()> Sys_Milliseconds{0x142333430};
WEAK symbol<void()> Sys_ShowConsole{0x142333F80};
WEAK symbol<TLSData*()> Sys_GetTLS{0x142184210};
// Dvar
WEAK symbol<const dvar_t*(const char* dvarName)> Dvar_FindVar{0x1422BD730_g};
WEAK symbol<unsigned int(const char* str)> Dvar_GenerateHash{0x14133DBF0_g};
WEAK symbol<dvar_t*(unsigned int hash)> Dvar_FindMalleableVar{0x1422BD6A0_g};
WEAK symbol<const char*(const dvar_t* dvar)> Dvar_GetDebugName{0x1422BDCB0_g};
WEAK symbol<const char*(const dvar_t* dvar)> Dvar_GetString{0x1422BFFF0_g};
WEAK symbol<const dvar_t*(const char* dvarName)> Dvar_FindVar{0x1422BD730};
WEAK symbol<unsigned int(const char* str)> Dvar_GenerateHash{0x14133DBF0};
WEAK symbol<dvar_t*(unsigned int hash)> Dvar_FindMalleableVar{0x1422BD6A0};
WEAK symbol<const char*(const dvar_t* dvar)> Dvar_GetDebugName{0x1422BDCB0};
WEAK symbol<const char*(const dvar_t* dvar)> Dvar_GetString{0x1422BFFF0};
WEAK symbol<void(const char* dvarName, const char* string, bool createIfMissing)> Dvar_SetFromStringByName{
0x1422C7F60_g
};
@ -60,22 +59,22 @@ namespace game
};
// Variables
WEAK symbol<cmd_function_s> cmd_functions{0x15689FF58_g};
WEAK symbol<CmdArgs> sv_cmd_args{0x15689CE30_g};
WEAK symbol<cmd_function_s> cmd_functions{0x15689FF58};
WEAK symbol<CmdArgs> sv_cmd_args{0x15689CE30};
WEAK symbol<SOCKET> ip_socket{0x157E77818_g};
WEAK symbol<SOCKET> ip_socket{0x157E77818};
WEAK symbol<Join> s_join{0x15574C640_g};
WEAK symbol<Join> s_join{0x15574C640};
namespace s_wcd
{
WEAK symbol<HWND> codLogo{0x157E77A50_g};
WEAK symbol<HFONT> hfBufferFont{0x157E77A58_g};
WEAK symbol<HWND> hWnd{0x157E77A40_g};
WEAK symbol<HWND> hwndBuffer{0x157E77A48_g};
WEAK symbol<HWND> hwndInputLine{0x157E77A60_g};
WEAK symbol<int> windowHeight{0x157E7806C_g};
WEAK symbol<int> windowWidth{0x157E78068_g};
WEAK symbol<WNDPROC> SysInputLineWndProc{0x157E78070_g};
WEAK symbol<HWND> codLogo{0x157E77A50};
WEAK symbol<HFONT> hfBufferFont{0x157E77A58};
WEAK symbol<HWND> hWnd{0x157E77A40};
WEAK symbol<HWND> hwndBuffer{0x157E77A48};
WEAK symbol<HWND> hwndInputLine{0x157E77A60};
WEAK symbol<int> windowHeight{0x157E7806C};
WEAK symbol<int> windowWidth{0x157E78068};
WEAK symbol<WNDPROC> SysInputLineWndProc{0x157E78070};
}
}

View File

@ -143,12 +143,17 @@ size_t get_base()
return base;
}
size_t operator"" _g(const size_t val)
size_t get_game_address(const size_t val)
{
static auto base = get_base();
return base + (val - 0x140000000);
}
size_t operator"" _g(const size_t val)
{
return get_game_address(val);
}
size_t reverse_g(const size_t val)
{
static auto base = get_base();

View File

@ -58,6 +58,7 @@ namespace \
}
size_t get_base();
size_t get_game_address(size_t val);
size_t operator"" _g(size_t val);
size_t reverse_g(size_t val);
size_t reverse_g(const void* val);