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) {