From 59b8fd9f542261980199fc12e751a94dc6c45668 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Wed, 16 Mar 2022 19:50:46 -0400 Subject: [PATCH] Make iterate_text_sections MCPI-Agnostic --- libreborn/include/libreborn/elf.h | 2 +- libreborn/src/patch/patch.c | 2 +- libreborn/src/util/elf.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libreborn/include/libreborn/elf.h b/libreborn/include/libreborn/elf.h index fd62ef2..a59c214 100644 --- a/libreborn/include/libreborn/elf.h +++ b/libreborn/include/libreborn/elf.h @@ -15,7 +15,7 @@ extern "C" { // Find And Iterate Over All .text Sections In Current Binary typedef void (*text_section_callback_t)(ElfW(Addr) section, ElfW(Word) size, void *data); -void iterate_text_sections(text_section_callback_t callback, void *data); +void iterate_text_sections(const char *exe, text_section_callback_t callback, void *data); #ifdef __cplusplus } diff --git a/libreborn/src/patch/patch.c b/libreborn/src/patch/patch.c index 02f467f..d41d0ac 100644 --- a/libreborn/src/patch/patch.c +++ b/libreborn/src/patch/patch.c @@ -115,7 +115,7 @@ void _overwrite_calls(const char *file, int line, void *start, void *target) { data.replacement = code_block; data.found = 0; - iterate_text_sections(overwrite_calls_callback, &data); + iterate_text_sections(getenv("MCPI_EXECUTABLE_PATH"), overwrite_calls_callback, &data); // Increment Code Block Position increment_code_block(); diff --git a/libreborn/src/util/elf.c b/libreborn/src/util/elf.c index a449843..0b3546c 100644 --- a/libreborn/src/util/elf.c +++ b/libreborn/src/util/elf.c @@ -1,9 +1,9 @@ #include // Find And Iterate Over All .text Sections In Current Binary -void iterate_text_sections(text_section_callback_t callback, void *data) { +void iterate_text_sections(const char *exe, text_section_callback_t callback, void *data) { // Load Main Binary - FILE *file_obj = fopen(getenv("MCPI_EXECUTABLE_PATH"), "rb"); + FILE *file_obj = fopen(exe, "rb"); // Verify Binary if (!file_obj) {