Question:
IDA EBP variable offset
PSS
2013-06-07 06:11:43 UTC
view on stackexchange narkive permalink

Voyons comment IDA affiche l'adresse de la variable locale. Par exemple:

  MOV EAX, [EBP + var_4]  

Comme nous le savons tous en ce qui concerne les variables locales, elles sont situées à des adresses inférieures de EBP.

Stack Frame

Bien que je le prenne pour acquis et inévitable, je suis toujours très curieux. Pourquoi IDA affiche-t-il le décalage de la variable locale sous la forme [EBP + var] et non [EBP - var] ?

Merci beaucoup.

Un répondre:
Igor Skochinsky
2013-06-07 06:55:55 UTC
view on stackexchange narkive permalink

Regardez la définition de var_4 au début de la fonction:

  var_4 = dword ptr -4  

Donc c'est en fait négatif comme prévu.

Pour une image plus complète, utilisez Ctrl + K ou double-cliquez / Entrée sur la pile var pour voir le cadre de pile mise en page:

  -00000018; Deux champs spéciaux "r" et "s" représentent l'adresse de retour et les registres sauvegardés.-00000018; Taille du cadre: 18; Regs enregistrés: 4; Purge: 0-00000018; -00000018-00000018 var_18 dd? -00000014 var_14 dd? -00000010 var_10 db 12 dup (?) - 00000004 var_4 dd? +00000000 s db 4 dup (?) + 00000004 r db 4 dup (?) +00000008 arg_0 dd? + 0000000C + 0000000C; variables de fin de pile  


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...