-
پنج شنبه 02 فروردین 1386, 03:14 صبح
#1
کاربر دائمی
سر ریز بافر
این چی هست؟در چه هنگام رخ می ده؟چطوری میشه ازش استفاده کرد و به امکانات ویندوز به راحتی دست یافت؟
-
جمعه 03 فروردین 1386, 03:45 صبح
#2
کاربر دائمی
did you ever use www.google.com
توی همین جا هم مقالات و اگه اشتباه نکنم فیلم های آموزشی هم هست
-
جمعه 03 فروردین 1386, 11:10 صبح
#3
کاربر دائمی
سلام ::
سر ریزه بافر کی انجام میشه ::
این بر میگرده به پشته :: فکر کن ما یک ظرف 5 لیتری داریم وتوش 10 لیتر اب ذخیره کنیم
خوب معومه این اب بیرون میریزه :::: به این میگن سرریزه بافر
در مورده سوال اخرتون :: شما یا در حاله نوشتن شل کد هستید یا یه چیزی شبیه این ::
بگید تو چه زمینه ای می خواید شاید تونستم مقالشو بزارم (اگه اونی که میخوای پیدا کردم)
-
یک شنبه 05 فروردین 1386, 02:14 صبح
#4
کاربر دائمی
اینو که میدونم اما چه عاملی باعث میشه که پشته پر شه؟عملا" باید چی کار کنیم تا اینجوری شه بعدشم که شد حالا چطوری ازش استفاده کنیم؟
-
یک شنبه 05 فروردین 1386, 04:36 صبح
#5
کاربر دائمی
-
یک شنبه 05 فروردین 1386, 11:00 صبح
#6
کاربر دائمی
بیبن پشته بیشتر برای بار گ
ذاری توابع به کار می رن :: یعنی در هنگان اجرای برنامه :: زمانی که میرسه به یک تابع چی میشه
اون تابع در پشته بار گذاری میشه
خوب حالا چی جوری بارگذاری میشه :: اول از همه return هست که یعنی این که بعد از اتمام
تابع به اولین دستوره بعد در برنامه هدایت بشه ::: بعدیش ارگومان هاست و هر چی دیگه بمونه یک فضایی هست برای متغییر های محلی بکار برده میشه
حالا فکر کن این متغییر؛ارایه محلیه ما 10 تا اندیس داره :: خوب برای این که به سریز بوجود بیاد از توابعی استفاده می شه که در مدیریت ضعیفی داره تو کنترل متغییر ها مثل
strcat:::gets:::memcpy::scanf:::,................. ..................
خوب وقتی اندازه ارایه 10 باشه و متغییری که در اون کپی بشه 700 تا باشه چی میشه؟؟
سرریز اتفاق میافته :: یعنی فپایی که برای متغغیر ها در پشته در نظر گرفته شده پر میشه و بقیش وارد فضای ارگومان ها و قسمت return میشه و حالا فکر کن این ها که وارد میشن
یک سری دستورات ماشین باشه و به return بگه بعد از اتمام تابع این جا برو و این یکی برنامرو اجرا کن!!
دقیقن به همین صورت انجام میشه ::: حالا احتمال داره شما ادرسی که تو حافظه حدس زده اید
اشتباه باشه یعنی یکم خطا داشته باشه :: اون وقت میان برای از بین بردن این احتمال دستورات ماشین رو تو دستورات هرزه قرار میدن ::: دستورات هرزه دستوراتی هست که هیچ ضرری برای برنامه ندارن مثل nop که قدیما از همین دستور استفاده میکردن :::
اما از اون جایی که سیستم مزاحمت یاب IDS به nop هایی که پشتش دستورات ماشین باشه حساس شده اند و به اونوان مزاحمت در نظر میگیرند اومدن به جایه nop از دستورات هرزه دیگه مثل MOV EAX,EAX استفاده میکنند
میبینید که EAX رو در خودش cut کرده یعنی انگار هیچ کاری نکرده (دستورات هرزه)
با این روش خطایی که تو حدس زدنه ادرس حافظه داشتید از بین میبره
-
دوشنبه 06 فروردین 1386, 02:24 صبح
#7
کاربر دائمی
خوب ویندوز با توابعش در حال اجرا هستند اینجا اگه بخواهیم پشته رو سر ریز کنیم تو کدوم آرایه؟تو کدوم تابع؟چجوری می تونیم مقداری بریزیم؟آرایه کجاست که ما بخواهیم توش بیش از حد چیزی ذخیره کنیم؟
حالا سر ریز شد-اون تیکه کدی که گذاشتیم با زبان ماشین برنامه ویندوز را به کدوم خط برنامه بفرسته؟مگه ما می دونیم تو چه IP از دستورات چه برنامه ای هست؟که ip رو اون قرار بدیم؟
-
دوشنبه 06 فروردین 1386, 11:50 صبح
#8
کاربر دائمی
تو ویندوز ها به dll ها مراجعه میکنند ::
یعنی شما یک باگ در dll ها پیدا میکنید و بعد با دستوره bind یک پورت رو دستگاهش باز میکنید و به اون باگ دستوراتتونو تزریق میکنید
اما تو لینوکس فرق داره
به این لینک هم یه سر بزن :: باری powerboy هستش
http://www.powerboy2988.persianblog.com/
-
جمعه 28 فروردین 1388, 09:04 صبح
#9
کاربر تازه وارد
نقل قول: سر ریز بافر
یک مقاله کامل 35 صحفه ای به زبان پارسی در مورد Buffer overflow
http://amir87.persiangig.com/documen...20Overflow.pdf
http://estakhrian.blogfa.com
شامل تشریح کامل نحوه ایجاد Buffer overflow ، کد مخرب ، جلوگیری از Buffer overflow و...
آخرین ویرایش به وسیله Abalfazl : جمعه 28 فروردین 1388 در 09:23 صبح
برچسب های این تاپیک
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت