#ifndef WOODY_H #define WOODY_H #include "../ft_printf/includes/ft_printf.h" #include #include #include #include #include #include #include #include #include #include #include #define JUMP "\xe9" #define TEXT_OFFSET "\xba\xba\xba\xba\xba\xba\xba\xba" #define SECTION_SIZE "\xca\xca\xca\xca\xca\xca\xca\xca" typedef struct payload { char *payload; size_t len; } t_payload; typedef struct elf_content { long unsigned int file_size; char *file_path; char *file; Elf64_Ehdr *Ehdr; Elf64_Phdr *Phdr; Elf64_Shdr *Shdr; Elf64_Shdr *text_section; char *extra_data; } t_elf_content; // utils.c void *fetch(char *file, unsigned long file_size, unsigned long offset_to_data, unsigned long supposed_data_size); int ft_put_error(char *str); char *get_string(char *str, char *end_file); int get_symbols_count(int sh_size, int sh_entsize); // woody.c int prepare_injection(t_elf_content *woody); // encrypt.c void encrypt(char *file, unsigned long int offset, unsigned long int size); #endif