من یک آزمایش سرریز بافر در یک اوبونتو 16.04 VM انجام دادم ( لینوکس اوبونتو 4.10.0-28-عمومی # 32 ~ 16.04.2-اوبونتو SMP پنجشنبه 20 ژوئن 10:19:48 UTC 2017 x86_64 x86_64 x86_64 گنو / لینوکس
) و یک اشتباه گیج کننده پس از دریافت کد پوسته اعدام شد. کد پوسته از این آموزش کپی می شود و به طور خاص " x48 x31 xf6 x48 x31 xd2 x48 xbb x2f x62 x69 x6e x2f x73 x68 x11 x48 xc1 xe3 x08 x48 xc1 xeb x08 x53 x48 xc7 xc0 x3b x11 x11 x11 x48 x89 xe7 x48 xc1 xe0 x38 x48 xc1 xe8 x38 x0f x05 "
. در Edb، من می بینم RIP
به کد پوسته می رود و آن را اجرا می کند، همانطور که در زیر نشان داده شده است:
edb نمایش کد پوسته اجرا شده
بعد از دستور syscall
که قرار است execve
پوسته، با این حال، به نظر می رسد به سیاه چاله افتاده است. Edb شروع به خالی کردن می کند، همانطور که در زیر نشان داده شده است:
edb پس از syscall
خالی می شود، و در مرحله ای که در debugger در تاریکی قرار می گیرد، پنجره خط فرمان آن خطاهای زیر را نشان می دهد:
اشتباه در پنجره edb cli
تعجب اگر کسی قبلا این را دیده است و می داند چگونه آن را حل کند؟