Urgent: return address

cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007 - 3 nov. 2007 à 16:07
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 4 nov. 2007 à 14:01
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

cs_elpens Messages postés 260 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 3 novembre 2007
3 nov. 2007 à 17:03
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
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
4 nov. 2007 à 14:01
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

@++
0
Rejoignez-nous