MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / HookLuaFunctions

Function HookLuaFunctions

emmy_hook/src/emmy_hook.windows.cpp:140–163  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

138#define EXIST_SYMBOL(FN) (symbols.find(""#FN"") != symbols.end())
139
140void HookLuaFunctions(std::unordered_map<std::string, DWORD64>& symbols)
141{
142 if (symbols.empty())
143 return;
144 // lua 5.1
145 HOOK(lua_pcall, lua_pcall_worker, false);
146 // lua 5.2
147 HOOK(lua_pcallk, lua_pcallk_worker, false);
148 // HOOK(lua_error, lua_error_worker, true);
149
150 // lua5.4
151 if (EXIST_SYMBOL(lua_newuserdatauv))
152 {
153 HOOK(lua_resume, lua_resume_worker_54, false);
154 }
155 else if(EXIST_SYMBOL(lua_rotate) || EXIST_SYMBOL(lua_callk)) //lua5.3 lua5.2
156 {
157 HOOK(lua_resume, lua_resume_worker_53_52, false);
158 }
159 else // lua5.1 or luajit
160 {
161 HOOK(lua_resume, lua_resume_worker_51, false);
162 }
163}
164
165void LoadSymbolsRecursively(HANDLE hProcess, HMODULE hModule)
166{

Callers 1

LoadSymbolsRecursivelyFunction · 0.85

Calls 1

emptyMethod · 0.45

Tested by

no test coverage detected