2017-01-09 1 views
1

Je regarde mon désassemblage ELF et quelques lignes sont comme ça:ELF Disassembly - que signifie ".init .text .plt"?

.text:000105e0 00 b0 a0 e3 mov fp, #0 
.text:000105e8 04 10 9d e4 pop {r1}; (ldr r1, [sp], #4) 

autres comme celui-ci:

.plt:00010568 00 c6 8f e2 add ip, pc, #0, 12 
.plt:0001056c 10 ca 8c e2 add ip, ip, #16, 20 ; 0x10000 

et d'autres comme:

.init:00010544 08 40 2d e9 push {r3, lr} 

Qu'est-ce que le . text, .plt et .init parties des lignes de démontage signifie?

+2

Ce sont des noms de section et ils donnent une idée de l'objectif du code que vous désassemblez, y compris s'il s'agit en fait de code et non de données. –

+0

Merci, envisageriez-vous de faire de votre commentaire une réponse? –

+3

Ce sont des sections de programme, s'il vous plaît [voir ceci] (https://greek0.net/elf.html). BTW J'ai eu une idée (de l'expérience de l'assembleur en général). Je viens de googled ** elf plt ** et il était là. –

Répondre

4

.init, .text et .plt sont des sections de liens.

  1. .init contient le code de démarrage
  2. .text contient un code de programme
  3. .plt est utilisé lors de l'appel des fonctions dont les adresses ne peuvent pas être connues à relier le temps (mais seront résolus éditeur de liens dynamique au moment de l'exécution)

Il existe par ailleurs de nombreuses autres sections possibles contenant du code, des données ou des constantes.