Quelqu'un pourrait-il expliquer les colonnes affichées de la table des symboles en utilisant readelf
?
Considérer ce qui suit:
Table des symboles .symtab
contient 1203 entrées:
Num: Value Size Type Bind Vis Ndx Name
310: a0008120 0 NOTYPE GLOBAL DEFAULT ABS _gp
734: a0000010 32 OBJECT GLOBAL DEFAULT 77 v
818: 9d000018 496 FUNC GLOBAL DEFAULT 71 main
849: a0000124 4 OBJECT GLOBAL DEFAULT 78 phrase
955: a0000000 9 OBJECT GLOBAL DEFAULT 77 peppers
1020: a000023c 192 OBJECT GLOBAL DEFAULT 80 bins
Num:
= Le numéro de symboleValue
= l'adresse du symboleSize
= La taille du symboleType
= type de symbole: Func
= Fonction, Object
, File
(nom du fichier source), Section
= section mémoire, Notype
= symbole absolu non typé ou non définiBind
= GLOBAL
la liaison signifie que le symbole est visible à l'extérieur du fichier. LOCAL
la liaison n'est visible que dans le fichier. WEAK
est comme global, le symbole peut être remplacé.Vis
= Les symboles peuvent être par défaut, protégés, cachés ou internes.Ndx
= Le numéro de section dans lequel se trouve le symbole. ABS signifie absolu: non ajusté à la relocalisation d'une adresse de sectionName
= nom du symboleTu peux soit:
man readelf
ou regardez ces tutoriels:
Je pense que le champ Ndx montre le numéro de section où ce symbole est défini.
Fait une readelf -a <file>
, et découvrez à quelle section l'adresse correspond pour un symbole donné.
Je parie que le numéro de section de cette section apparaîtra dans le champ Ndx.