باز کردن منو اصلی

تغییرات

{{ویکی‌سازی|دلیل=ظاهر و محتوی غیر دانشنامه‌ای}}
{{بدون منبع}}
در امنیت کامپیوتر و برنامه نویسی، سرریز بافر، و یا تاخت و تاز کردن بافر، یک استثنا است که در آن برنامه، هنگامی که در حال نوشتن داده‌ها به بافر است، از مرز بافر تخطی می‌کند و باعث رونویسی حافظه مجاور می‌شود. این یک مورد خاص از نقض ایمنی حافظه‌است.
 
سرریزهای بافر توسط ورودی طراحی شده‌اند که برای اجرای کد، و یا راه عمل برنامه را تغییر می‌دهند، باعث شده‌است. این امر ممکن است در رفتار نامنظم، از جمله خطاهای دسترسی به حافظه، نتایج نادرست، تصادف، یا نقض امنیت سیستم منجر شود. بنابراین، آنها اساس بسیاری از آسیب پذیری‌های نرم‌افزار است و می‌تواند مخرب مورد سوء استفاده قرار بگیرند.
 
زبان [[برنامه نویسی]] معمولاً با سرریزهای بافر همراه عبارتند از C و C + +{{چر}}، ساخته شده‌است، در حفاظت در برابر دسترسی و یا جای نوشتن داده‌ها در هر بخشی از حافظه و انجام به طور خودکار نیست بررسی کنید که داده‌ها به آرایه (ساخته شده در نوع بافر) داخل مرزهای آن آرایه نوشته شده‌است.
'''توصیف فنی'''
سرریز بافر هنگامی رخ می‌دهد که داده‌ها نوشته شده به یک بافر، با توجه به مرزهای کافی بررسی، فساد مقادیر داده در حافظه آدرس مجاور به بافر اختصاص داده‌است. شایع ترین این زمانی اتفاق می‌افتد که کپی کردن رشته از کاراکترها از یک بافر به دیگری است.
با جای نوشتن آدرس برگشت در قاب پشته. پس از بازده عملکرد، اجرا خواهد شد در آدرس برگشت، به عنوان مهاجم، معمولاً پر از بافر ورودی کاربر را مشخص سر گرفته شود.
 
با جای نوشتن تابع یک اشاره گر، و یا برنامه کنترل استثنا است که پس از آن اجرا شده‌است.
 
با استفاده از یک روش به نام "trampolining"، در صورتی که آدرس داده‌های کاربر را تامین ناشناخته‌است، اما محل در ثبت نام ذخیره می‌شود، و سپس آدرس برگشت، می‌تواند با آدرس شناسنده رونویسی است که باعث می‌شود که اجرای [[حکم اعدام]] به پرش تامین شده توسط کاربر داده‌است.
 
اگر محل در ثبت نام R ذخیره می‌شود، سپس پرش محل حاوی شناسنده برای مراجعه R، تماس R و یا دستور العمل مشابه، اعدام از داده‌های کاربر عرضه می‌شود. محل opcodes مناسب، و یا بایت در حافظه، می‌تواند در DLLها و یا اجرایی خود را در بر داشت.
 
با این حال آدرس شناسنده به طور معمول هر کاراکتر تهی نیست و محل این opcodesها می‌تواند در میان برنامه‌ها و نسخه‌های سیستم عامل متفاوت باشد. پروژه Metasploit یک پایگاه داده‌های چنین opcodes مناسب است، هر چند تنها افراد موجود در سیستم عامل ویندوز ذکر شده‌است.
== موانع استثمار ==
 
دستکاری بافر رخ می‌دهد که قبل از آن خوانده می‌شود و یا اعدام شده‌است، ممکن است منجر به شکست تلاش بهره برداری شود. این دستکاری می‌تواند تهدید از بهره برداری، کاهش، اما ممکن است آن را غیر ممکن سازد. دستکاری می‌تواند تبدیل به بالا و یا پایین تر مورد، حذف metacharacters و فیلترینگ از رشته‌های غیر الفبایی باشد.
 
با این حال، تکنیک‌ها یی برای دور زدن این فیلتر و دستکاری وجود داشته باشد ؛کد عدد و الفبایی، کدهای چند شکلی، خود را تغییر کد و بازگشت به حملات-libc. از روش مشابه می‌تواند مورد استفاده قرار گیرد برای جلوگیری از شناسایی توسط سیستم‌های تشخیص نفوذ است. در برخی موارد، از جمله که در آن کد را به یونیکد تبدیل شده، خطر از آسیب پذیری شده‌اند تحریف توسط disclosers به عنوان انکار تنها از خدمات که در واقع اعدام از راه دور کد دلخواه، امکان پذیر است.