من در حال آزمایش این بودم که ببینم آیا می توانم زنجیره ROP را در هسته درست کنم. در حالت اشکال زدایی هسته ، می توانم بدون هیچ مشکلی ، اولین پرش به یک آدرس ابزار دلخواه را انجام دهم. اما مشکل پس از آن رخ می دهد. اگر می خواهم هسته را با تایپ کردن ادامه دهم ، هسته را منجمد می کند. سیستم عامل پاسخ نداد ، من مجبور به راه اندازی مجدد VM خود برای بازگشت دوباره به حالت کار هستم.
اکنون درک من این است که وقتی به یک آدرس تصادفی (ابزار) در هسته می پرسم یا برمی گردم ، همانطور که یک کارکرد معمولی انجام می شود ، پشته من حاوی تغییر نمی باشد. بنابراین ، هنگامی که من دستورالعملهای ابزار را یکی یکی اجرا می کنم یا به اجرای هسته ادامه می دهم اگر دستورالعمل نیاز به مقداری از پشته داشته باشد که در آنجا وجود ندارد ، در نتیجه ، کرنش هسته است.
بنابراین ، سوال من این است که چگونه می توانید من به ابزارهای مختلف پرش می کنم / برمی گردم و بعد از اجرای تمام ابزارها بدون هیچ گونه خرابی آن به کار هسته ادامه می دهند. من حدس می زنم هیچ پاسخ آسان و رو به جلو برای آن وجود ندارد. اما اگر کسی بتواند ایده اصلی را در مورد شروع از کجا ارائه دهد ، بسیار مفید خواهد بود. پیشاپیش از شما متشکرم.