Urgent: return address

Signaler
Messages postés
260
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
3 novembre 2007
-
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour,

J'essaie de lister les addresses de retour des fonctions API.

Si dans un programme il y a une instruction:
 
jmp ADVAPI32.RegOpenKeyExA

Est-ce que la return address de cette instruction est mise dans la stack ou non?

Autre question,
Si j'ai un call 00000001, et qu'à l'addresse 10000000 il y a la fonction jmp ADVAPI32.RegOpenKeyExA, quelle est la return address? Celle du call, ou celle du jmp?

Merci d'avance pour vos réponse!

 ElpenS

2 réponses

Messages postés
260
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
3 novembre 2007

Je crois que je tiens ma réponse...

http://en.wikipedia.org/wiki/Instruction_set

<li>affecting program flow
<li>jump to another location in the program and execute instructions there
</li><li>jump to another location if a certain condition holds
</li><li>jump to another location, but save the location of the next instruction as a point to return to (a call) </li></li>Donc c'est exclusivement avec les calls...

Mais une confirmation ne ferait pas de mal...

 ElpenS
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

tout est indiqué dans la doc intel, l'instruction "call" empile la valeur de retour et saute a l'adresse indiquée (équivalent à GOSUB, l'instruction "ret" permettant le retour). L'instruction "jmp" saute à l'adresse indiquée et c'est tout (équivalent à GOTO)

start:
call mafunc

=

start:
push word .1
jmp mafunc
.1

@++