2017-07-09 10 views
-1

Hé, je suis en train de faire un dépassement de mémoire tampon sur un programme C de base, le shellcode j'utilise dans gdb est sous la formeBuffer Overflow: traîneau NOP ne fonctionne pas

traîneau NOP alors la charge utile msfvenom de se reconnecter à ma propre machine, enfin une adresse mémoire de quelque part dans le traîneau NOP.

Lors de l'exécution de gdb, avant que le shellcode soit exécuté, je peux voir que les instructions NOP commencent à 0x7fffffffe010 qui est l'adresse que j'ai à la fin du shellcode. Après le shellcode est exécuté le registre Déchirure est à 0x7fffffffe010 mais il me donne l'avertissement:

Cannot insert breakpoint 0. 
Cannot access memory at address 0x40000 

0x00007fffffffe010 in ??() 

Je pensais que la déchirure lirait maintenant de la NOP et aller dans la charge utile de se reconnecter à ma machine, je ne comprends pas pourquoi ça ne marche pas.

+0

Il peut très bien fonctionner. Ce que vous voyez est juste erreur gdb, pas d'erreur de programme. Laissez le continuer. – Jester

+0

Merci pour l'aide mais il manquait certaines options lors de la compilation! – W22

Répondre

0

a résolu le problème je devais compiler le programme c comme: gcc -fno-stack-protecteur -Z execstack -o sortie file.c