This mainly refers to the Symbol Table , starting on page 119 of this document to which you are linking.
In fact, you have the structure you need:
typedef struct { Elf32_Word st_name; Elf32_Addr st_value; Elf32_Word st_size; unsigned char st_info; unsigned char st_other; Elf32_Half st_shndx; } Elf32_Sym;
as well as detailed information on how to find information for related records (in particular, a tool for finding a name from the st_name structure st_name ).
Unfortunately, this document does not seem to cover where certain things come from (e.g. version), so when I try to imitate another program that has the source code, I go to the source - in fact there is nothing more specific :-)
Starting at line 1665 of this file, you will find the elf_print_symtab() function, which is responsible for displaying the information you are interested in. She calls get_versym() to get this information, and from this code on line 1632, you can see that another section is used for this ( version symbol section ).
And, as you can see here , this type of partition is considered one of the OS-specific, so you will not find it in the basic standard, which applies only to ordinary things.
paxdiablo
source share