char * symbol_lookup_lib(char * arrayc, Elf64_Shdr sh_table[], uint64_t symbol_table, int name_) { char *str_tbl; Elf64_Sym* sym_tbl; uint64_t i, symbol_count; sym_tbl = (Elf64_Sym*)read_section_(arrayc, sh_table[symbol_table]); uint64_t str_tbl_ndx = sh_table[symbol_table].sh_link; str_tbl = read_section_(arrayc, sh_table[str_tbl_ndx]); symbol_count = get_dynamic_entryq(library[library_index].dynamic, DT_STRSZ); for(int i=0; i< symbol_count; i++) { if (i == name_) { fprintf(stderr, "library name found at index %d\n", i); char * name_str = str_tbl; char * name_sym = sym_tbl[i].st_name; char * name_str_sym = str_tbl + sym_tbl[i].st_name; fprintf(stderr, "name_str = "); test_string(name_str); fprintf(stderr, "\nname_sym = "); test_string(name_sym); fprintf(stderr, "\nname_str_sym = "); test_string(name_str_sym); printf("\n"); } } // if (bytecmpq(global_quiet, "no") == 0) fprintf(stderr, "\nno libraries found\n"); return NULL; }