Add self_unload to main, print symbol addresses

Echo from game console
This commit is contained in:
8dcc 2023-07-20 01:29:11 +02:00
parent 5c3899e093
commit bd8c2521be
1 changed files with 32 additions and 0 deletions

View File

@ -1,4 +1,10 @@
#include <stdio.h> #include <stdio.h>
#include <dlfcn.h>
#include "include/main.h"
#include "include/globals.h"
#include "include/sdk.h"
/* /*
* We need: * We need:
@ -7,4 +13,30 @@
*/ */
__attribute__((constructor)) void load(void) { __attribute__((constructor)) void load(void) {
printf("hl-cheat loaded!\n"); printf("hl-cheat loaded!\n");
if (!globals_init()) {
printf("hl-cheats: load: error loading globals, aborting\n");
self_unload();
return;
}
printf("gp_engine: %p\n"
"gp_client: %p\n",
gp_engine, gp_client);
gp_engine->pfnClientCmd("echo \"Hello from the game's console!\"");
}
void self_unload(void) {
/*
* RTLD_LAZY: If the symbol is never referenced, then it is never resolved.
* RTLD_NOLOAD: Don't load the shared object.
*/
void* self = dlopen("libhlcheat.so", RTLD_LAZY | RTLD_NOLOAD);
/* Close the call we just made to dlopen() */
dlclose(self);
/* Close the call our injector made */
dlclose(self);
} }