From c04078e5a2f4e37dd6a1010226d363cb5531ec95 Mon Sep 17 00:00:00 2001 From: gbrochar Date: Wed, 17 Apr 2024 06:53:47 +0200 Subject: [PATCH] fix: "clean" jump, can modify payload --- srcs/woody.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/srcs/woody.c b/srcs/woody.c index 448a085..a317d9a 100644 --- a/srcs/woody.c +++ b/srcs/woody.c @@ -1,6 +1,5 @@ #include "../includes/woody.h" - int elf_magic_numbers(char *str) { return (!ft_strncmp(str, ELFMAG, SELFMAG)); @@ -99,8 +98,7 @@ int insert_payload(t_elf_content *woody, t_payload *payload, size_t payload_posi if (ptr) { int32_t jmp_index = ptr - payload->payload; - int32_t jump_value = ((payload_position + payload->len) - woody->Ehdr->e_entry) * -1; - jump_value += 14; + int32_t jump_value = ((payload_position + jmp_index + 5) - woody->Ehdr->e_entry) * -1; // 5 = JUMP SIZE (OPCODE + 4 bytes operand) ft_memcpy(&payload->payload[jmp_index + 1], &jump_value, sizeof(jump_value)); ft_memcpy(woody->file + payload_position, payload->payload, payload->len);