|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 13 ![]() |
Bonjour,
Je me sers de ptrace pour recenser les instructions CALL. Pour ce faire, je dumpe les registres et récupère l'instruction suivante grâce au registre RIP (64 bits). Du coup, dans le cas d'une instruction CALL (rel12 ou rel32), je récupère l'opcode 0xe8 suivi de l'offset de la prochaine instruction. J'aimerais donc savoir comment je peux différencier les call rel16 des call rel32. Merci. |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() passe le balais et l'aspirateur Inscription : mars 2008 Messages : 111 ![]() |
avant (sur les processeur non 64bit d'intel j'entend) ça dépendait du mode du segment de code executé (16 ou 32 bit)
si on souhaitait faire un call16 sur un segment executé en 32 bit il fallait mettre un préfixe a l'instruction (0x66 ou 0x67 je ne sais plus de mémoire, a vérifier) et pareille si on voulait faire un call32 sur un segment executé en mode 16bit grosso modo toute les instruction fonctionnait comme ça (pas seulement les call) il y avait deux préfixe, un pour changer la taille des données utilisé et un autre pour changer la taille des adressages utilisé |
|
00
|
Copyright © 2000-2013 - www.developpez.com