#include #include section_t *elf_find_section(elf_t *elf, const char *name) { section_t *str = (section_t *)((uint32_t)elf + elf->e_shoff + elf->e_shstrndx*elf->e_shentsize); section_t *found = 0; for (int i = 0; i < elf->e_shnum; i++) { section_t *sec = (section_t *)((uint32_t)elf + elf->e_shoff + i*elf->e_shentsize); const char *n = (char *)((uint32_t)elf + str->sh_offset + sec->sh_name); if (!strcmp(n, name)) { found = sec; } } return found; }