.symtab section is now broken ?

From: Aurelien NEPHTALI <aurelien.nephtali_at_wanadoo.fr>
Date: Sun, 3 Oct 2004 18:40:06 +0200
Hi,

I have coded some tools that read ELF binaries. Thet used to work 1 or 2 years
ago but now they don't. These tools parse an ELF file to get addresses of
malloc(),free(),etc into the PLT to put breakpoint on them.

The problem comes from the .symtab section. I'm using this struct to read
symbols:

typedef struct          s_symhdr
{
  unsigned int          st_name;
  unsigned int          st_value;
  unsigned int          st_size;
  unsigned char         st_info;
  unsigned char         st_other;
  unsigned short        st_shndx;
}                       t_symhdr;

Before, the field 'st_value' contained the symbol's address into the PLT,
now it's null, ie (readelf output):

 71: 00000000    41 FUNC    GLOBAL DEFAULT  UND malloc
     ^^^^^^^^
      value

I was suspecting the new gcc so I installed gcc 2.95 but it's the same problem.

Is there a reason ? What to do to still get the value I want ?

I have tested on NetBSD 1.6.1 and it works fine.

Thanks.

-- 
NEPHTALI 'dak' Aurelien
TEK2 - Promo 2008
06.19.84.90.10
Received on Sun Oct 03 2004 - 14:40:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:15 UTC