Es KANN sein, dass du ein ähnliches Problem wie hier beschrieben hast:
http://www.hackerboard.de/thread.php?threadid=39648
Wobei das das "Fixen des Stacks" notwendig ist, falls du einen Metasplit Fstenv Encoder benutzt, der, wenn ESP direkt auf den Shellcode zeigt, sich selbst überschreibt.
Ansonsten ist es nichts ungewöhnliches, wenn nach der Selbstenschlüsselung des Stellcodes Nullen etc.. im Speicher auftauchen. Nur beim Einlesen via strcpy() dürfen keine Nullzeichen vorhanden sein.
Beherzige bitte die Tips von CDW, wie z.B int3 vor strcpy einsetzen, und was auch noch interessant ist um den Ablauf des Shellcodes zu verfolgen:
dem shellcode ein INT3 (kodiert als 0xCC) vorangehen zu lassen, dann siehst du auch gleich, ob der Shellcode überhaupt zur Ausführung gelangt, wenn dann Olly erscheint
z.B.:
my $shellcode = "
\xCC\x2b\xc9\x83\xe9\xdc\xd9\xee\xd9\x74\x24\xf4\x5b\x 81\x73\x13\x4b". "\xf0\xc2\x16\x83\xeb\xfc\xe2\xf4\xb7\x18\x86\x16\ x4b\xf0\x49\x53". "\x77\x7b\xbe\x13\x33\x2d\x9d\x04\xe8\x49\x49\x6b\ xf1........................."
mfg