Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > x86 32-bits / 64-bits
x86 32-bits / 64-bits Architectures x86 32/64 bits et leurs outils (assembleurs, debuggers, émulateurs...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/06/2012, 09h15   #1
Costent
Invité de passage
 
Inscription : août 2011
Messages : 13
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 13
Points : 3
Points : 3
Par défaut Differencier les call rel16 et rel32 avec ptrace

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.
Costent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2012, 02h12   #2
bifur
Membre habitué
 
passe le balais et l'aspirateur
Inscription : mars 2008
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : passe le balais et l'aspirateur

Informations forums :
Inscription : mars 2008
Messages : 111
Points : 126
Points : 126
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é
bifur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h52.


 
 
 
 
Partenaires

Hébergement Web