It seems that you almost got it right.
The offset
you've calculated is a file offset in bytes of the section header of the String Table section. Again, this is the beginning of this section's header and it will be a structure of type Elf32_Shdr
. Now you should read its sh_offset
and this will be the offset to the list of strings you are looking for.