mumble/plugins
Davide Beatrici 5df2bb2c0b FEAT(client): add getExportedSymbol() function for positional audio plugins
This function is of critical importance for the Source Engine plugin, let me elaborate on why.

Most games consist in an executable and maybe one or more libraries, but they don't have particular exported symbols we can use to easily access (existing) resources inside the process, which means we have to rely on hardcoded offsets and hex pattern scanning.

Source Engine games are special: the executable is nothing more than a manager that takes care of loading the core libraries, which are engine(.dll|.so) and client(.dll|.so) (or server(.dll|.so) in the case of a dedicated server).

Those libraries have a common exported symbol, which is CreateInterface(). The function takes the interface's name as argument (char *), creates the interface object if it doesn't exist yet and returns a pointer (void *) to it. The interfaces objects are stored in a list called s_pInterfaceList, which is usually an exported symbol on Linux.

getExportedSymbol() allows us to get the address to CreateInterface() (different for each loaded library) inside the process and read the function's assembly code in order to reach s_pInterfaceList.

If s_pInterfaceList is exported we can get its address with getExportedSymbol(), without the need of CreateInterface().
2020-09-27 20:12:02 +02:00
..
aoc FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
arma2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf1 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf3 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf4 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf4_x86 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf1942 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bf2142 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bfbc2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
bfheroes FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
blacklight FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
borderlands FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
borderlands2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
breach FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
cod2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
cod4 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
cod5 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
codmw2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
codmw2so FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
cs FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
css BUILD(cmake): Don't build retracted plugins by default 2020-09-26 09:14:39 +02:00
dods BUILD(cmake): Don't build retracted plugins by default 2020-09-26 09:14:39 +02:00
dys FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
etqw FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ffxiv FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ffxiv_x64 BUILD(qmake): Remove 2020-09-02 08:29:45 +02:00
gmod FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
gtaiv FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
gtasa FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
gtav FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
gw FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
hl2dm BUILD(cmake): Don't build retracted plugins by default 2020-09-26 09:14:39 +02:00
insurgency FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
jc2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
l4d FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
l4d2 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
link FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
lol FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
lotro FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ql FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
rl FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
sr FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
sto BUILD(cmake): Don't build retracted plugins by default 2020-09-26 09:14:39 +02:00
tf2 BUILD(cmake): Don't build retracted plugins by default 2020-09-26 09:14:39 +02:00
ut3 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ut99 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ut2004 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
wolfet FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
wow FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
wow_x64 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
CMakeLists.txt FEAT(client): add several new functions to be used in positional audio plugins 2020-09-27 19:59:18 +02:00
mumble_plugin_linux.h FEAT(client): add getExportedSymbol() function for positional audio plugins 2020-09-27 20:12:02 +02:00
mumble_plugin_main.h FEAT(client): add getExportedSymbol() function for positional audio plugins 2020-09-27 20:12:02 +02:00
mumble_plugin_utils.h FEAT(client): add several new functions to be used in positional audio plugins 2020-09-27 19:59:18 +02:00
mumble_plugin_win32_internals.h Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
mumble_plugin_win32.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
mumble_plugin.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
null_plugin.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00