diff --git a/core/include/libcore/libcore.h b/core/include/libcore/libcore.h index 3e3cf94a..0da09487 100644 --- a/core/include/libcore/libcore.h +++ b/core/include/libcore/libcore.h @@ -30,6 +30,7 @@ extern "C" { void *overwrite(void *start, void *target); void revert_overwrite(void *start, void *original); void patch(void *start, unsigned char patch[]); +void patch_address(void *start, void *target); #ifdef __cplusplus } diff --git a/core/src/core.c b/core/src/core.c index 34638f5d..d2ace480 100644 --- a/core/src/core.c +++ b/core/src/core.c @@ -66,3 +66,8 @@ void patch(void *start, unsigned char patch[]) { memcpy(data, patch, 4); END_PATCH(1); } + +void patch_address(void *start, void *target) { + unsigned char patch_data[4] = {target & 0xff, (target >> 8) & 0xff, (target >> 16) & 0xff, (target >> 24) & 0xff}; + patch(start, patch_data); +} diff --git a/mods/src/extra.c b/mods/src/extra.c index 7ab35e12..0f2c9ce3 100644 --- a/mods/src/extra.c +++ b/mods/src/extra.c @@ -185,8 +185,5 @@ __attribute__((constructor)) static void init() { // Change Username const char *username = get_username(); - uint32_t username_addr = (uint32_t) username; - fprintf(stderr, "0x%08x", username_addr); - unsigned char username_patch[4] = {username_addr & 0xff, (username_addr >> 8) & 0xff, (username_addr >> 16) & 0xff, (username_addr >> 24) & 0xff}; - patch((void *) 0x18fd4, username_patch); + patch_address((void *) 0x18fd4, username); }