درود به دوستان عزیز و توجه کنید عزیزانی که میگفتین کوروش آموزش بده کوروش هک آموزش بده روزی ۱۰۰ تا پی ام میدن کوروش هک چطوریه این چطوریه پس کجایید یک نفر نیست همراهی کنه و نظر بده البته رک بگم با این وضعیت و عجول بودن و منتظر لقمه آماده بودن که عادت ما ایرانیاست عمرا هک یاد بگیرید فوقش لمر میشید( بوتر و کار با تروجانها و کیلاگرها) همین البته ما ایرانیا قدر چیزای مجانی رو نمیدونیم حسین دوستم کیلاگر نوشت مجانی گذاشتم تو فروم کاترینا اومدن زر زدن و البته حق دارن خونمون ایرانیه باید پول بدیم منت بکشیم تا چیزی بدن یا یه چیزی یادمون بدن اگه اینطوری پیش بره دیگه هک آموزش نمیدم یه تکونی به خودتون بدید اصلا ایناییکه میزارم میخونین اگه نمیخونین رک بگم ۱۰۰ سال هم بمونین هکر نمیشین همین
در این پست میخوام Buffer overflow رو به صورت کامل شرح بدم قبلشم بگم این مطالب به ساده ترین شکل ممکن بیان شده اگه کسی ذهنش نمیکشه ۲ - ۳ بار بخونه اگه نفهمید دنبال هک نباشه چون یاد نمیگیره >>>
بخش اول: اصول مقدماتی
پشته
اکثرا باید بدانید که پشته چیست.ولی اندکی یاد آوری در مورد پشته و ذکر انواع آن خالی از لطف نیست.
یک تعریف انتزاعی از پشته این است که پشته ساختمان داده ای است که اطلاعات (از هر نوعی) به ترتیب معکوس ورود از ان خارج میشوند :

یعنی آخرین ورودی , اولین خروجی است.به همین علت به این سیستم ورودی و خروجی , سیستم LIFO اطلاق میشودکه خلاصه شده عبارت Last In First Out میباشد.
پشته یکی از پر کاربرد ترین ساختار ها در دنیای کامپیوتر و برنامه سازی از پایین ترین سطح تا بالا ترین سطح میباشد و به همین علت در همه ماشینها (سی پی یو ها) دستوالعملهای خاصی برای کار کردن با پشته سیستم تدارک دیده اند. این دستورالعملها عبارتند از دستور PUSH و دستور POP که اگر کسی به زبان اسمبلی برنامه نوشته باشد صد درصد با آنها اشنایی دارد و میداند که کارشان چیست.
دستورالعملهای مربوط به پشته و مفهوم آنها :
1- PUSH : یعنی وارد کردن یک عنصر به پشته
2-POP : یعنی خارج کردن یک عنصر از پشته
اگر کمی فکر کنیم به این نتیجه میرسیم که پشته نیز در حافظه جای میگیرد و دارای حد بالا و حد پایین است.این حد بالا و حد پایین پشته توسط سیستم عامل نگهداری میشود و دارای مقدار ثابتی است (به طور معمول) ولی تعداد آیتمهای داخل پشته ثابت نیست بنابر این از کجا میتوانیم بفهمیم که پشته تا کجای ان پر است.برای اینکار در سیستم یک ثبات در نظر گرفته میشود که نشان دهنده این است که پشته تا کجای آن پر است و هر وقت که عنصری وارد پشته شود و یا از آن خارج شود در این ثبات , تغییراتی اعمال میگردد. در بسیاری از سیستمها این ثبات با نام SP : stack pointer معروف است:

انواع پشته از دید آدرس دهی در حافظه
اگر اندکی تامل کنیم متوجه میشویم که بر اساس ساختار و نحوه آدرس دهی حافظه کامپیوتر میتوانیم دو نوع پشته داشته باشیم که عبارتند از :
1-پشته کاهشی
2-پشته افزایشی
1-پشته افزایشی :
در این مدل از پشته , پشته از آدرس پایین حافظه شروع به بزرگ شدن میکند.در این مدل با اضافه شدن یک آیتم به پشته در جهت ایندکس خانه های حافظه از پایین به بالا حرکت میکنیم.
در ساده ترین تفسیر با اضافه شدن هر عنصر به پشته , یک واحد به اشاره گر بالای پشته اضافه میشود و با برداشته شدن هر عنصر , یک واحد از این اشاره گر کم میشود:

!!! FEEL S3CURITY HERE !!!