[ASM] Récupération registre EIP
|
13-01-2013, 19h57
Message : #1
|
|
Yttrium
Membre actif Messages : 106 Sujets : 14 Points: 48 Inscription : Jul 2012 |
[ASM] Récupération registre EIP
Bonjour a tous !
Aujourd'hui, nous allons voir comment récupéré la valeur du registre EIP grâce a une procédure en Assembleur x86. Cette dernière peux facilement être intégré à un code C grâce à la balise asm(""); Tout d'abord qu'est ce que le registre EIP. Le registre EIP, est utilisé par le processeur pour connaitre l’adresse de la prochaine instruction à exécuter. Cependant, il ne peux pas être modifié avec la traditionnel instruction mov. Vous le modifier sans le savoir lorsque vous faite un jump, car vous lui donner une valeur spécifique. Mais malgré ça, il reste une solution qui permet de récupéré ça valeur, le pointeur de pile, ESP. En faite, lorsque vous appelez une procédure avec l'instruction call, la variable EIP est stocké sur la pile avant d'être modifié. Et c'est la variable ESP qui contient l'adresse du haut de la pile, il nous suffira donc simplement de coder une fonction qui une fois appelé stock la variable pointé par ESP et la retourne ce qui nous donne : Code : eip_to_eax: Il vous suffira ensuite d'appeler la procédure eip comme ceci : Code : call eip_to_eax |
|
13-01-2013, 20h05
Message : #2
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,614 Sujets : 72 Points: 466 Inscription : Jan 2012 |
RE: [ASM] Récupération registre EIP
Sympa ton article
Btw, on retrouve ce trick assez souvent (surtout dans les shellcodes ou payload injectés dans d'autres bins), pour récupérer des données hardcoded dans le shellcode relativement à où est placé le shellcode . Par exemple, le botnet andromeda utilise ce trick pour retrouver des données
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
15-01-2013, 03h12
(Modification du message : 15-01-2013, 03h20 par gruik.)
Message : #3
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: [ASM] Récupération registre EIP
yep, c'est le trick bien connu du call/pop qu'on trouve aussi dans les shellcodes à l'ancienne
à noter que ça fait typiquement office de signature pour la détection de shellcodes justement (cf libemu) un autre trick existe aussi qui utilise les instructions du coprocesseur math x87 fldz et fstenv Code ASM :
et il semblerait qu'il y ait au moins une autre methode via les seh sous windows http://skypher.com/wiki/index.php/Hackin...code/GetPC |
|
15-01-2013, 19h34
Message : #4
|
|
Horgh
Membre actif Messages : 197 Sujets : 4 Points: 91 Inscription : Mar 2012 |
RE: [ASM] Récupération registre EIP
Nice gruik, je connaissais pas ces quelques tricks tordus. thx pour la doc :]
|
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)