مقاله : مروری بر CALL,JMP,RET

نوشته شده در ۳:۴۷ ق.ظ – 3:47 ق.ظ | توسط شهریار.ج | 65 views

درود بر شما خوانندگان خوشگل من
امروز میخواهم کمی در مورد دستور های Call و Jmp با شما صحبت کنم.پس از خواندن این متن کوتاه شما آشنایی مختصری با دستور Jmp ، Call و RET پیدا خواهید کرد.استفاده از این دستورات یکی از معقول ترین روش ها در شل کدینگ است.فعلا اجماعا” صلوت ،الا… .
دستور Call در CPU های اینتل بسیار شبیه دستور Jmp است. وقتی دستور Call اجرا میشود ، ابتدا ESP به داخل پشته Push میشود و سپس پرشی به سمت تابع که به صورت یک آرگومان میرسد ، انجام میشود.تابعی که صدا زده شده است میتواند از دستور ret استفاده کرده و مانع به تعویق افتادن اجرای برنامه شود.او با این کار اجرای برنامه را به آفست بعد از دستور Call هدایت میکند.
دستور Ret آدرس بازگشتی را که توسط Call در پشته ذخیره شده است را گرفته و سپس به آن پرش میکند.

۱ main:
2
3 call func1
4 …
۵ …
۶ func1:
7 …
۸ ret

وقتی تابع func1(خط ۳) صدا زده میشود ، ESP به داخل پسته PUSH میشود ، سپس پرشی به سمت تابع func1 (خط ۶ ) صورت میگیرد.وقتی تابع func1 اجرا میشود ، دستور ret با pop کردن آدرس بازگشت از داخل پشته ، به آن پرش میکند. که آن هم یعنی اجرای دستورات در خط ۴ و … .حال اگر ما بخواهیم شل کد ما از یک System Call استفاده کن که آن هم به عنوان آرماگون یک رشته را میپذیرد ، چه باید بکنیم؟ ما میتوانیم آدرس رشته خود را در حافظه به دست آورده و به آن پرش کنیم.

۱ jmp short data
2 code:
3 pop esi
4 ;
5 data:
6 call code
7 db ‘Burb’

خط اول به قطعه data پرش کرده و سپس تابع code را در خط ۶ صدا میزند. نتیجه ی Call به ما نشان میدهد که پشته به کجا اشاره میکند. به قسمتی از حافظه اشاره میکند که ‘burb’ به آنجا Push شده است. در خط ۳ ما قسمتی از حافظه پشته را گرفته و در ثابت ESI ذخیره میکنیم.این ثابت اکنون حاوی اشاره گری به اطلاعات ذکر شده(’burb’) است.اکنون این سوال پیش میآید که Jmp چگونه متوجه میشود که داده ها در کجا قرار دارند؟دستور های Jmp و Call با آفست ها کار میکنند.کامپایلر دستور Jmp short data را به دستوری شبیه Jmp short 0×4 . مقدار ۰×۴ نشان دهنده تعداد بایتی است که باید به سمت جلو پرش کرد.تموم!!!
فعلا تا همینجا کافی است ، بنده همی در حال دق ( Degh ) کردن بودم!!! اوف بالاخره دوباره نوشتم.در ضمن اینجا صاحب دارد ، صاحبش نیز به حمدالله در قید حیات است ، پس لطفا پس از کپی-پیست مطلب ، نامی از نویسنده مذکور بفرمایید.نکته دیگر اینکه ، نظرات شما مانند گذشته باعث شادی روح آن مرحوم ( صاحب ) و تسلی خاطر بازماندگان است.با تشکر ازتوجه شما ، این شوخی ها را به دل نگیرید ، صاحبش شیرین عقله!!! هاااا دیگه چی میخوای؟؟ آها راستی منو چنتا دوست دارید؟ اجماعا” الفتحه الصلوت … .
منبع : یه کتاب بود که اسم خفنی داشت ، راستی نماز و روزه هاتون قبول ، جیگر هر چی روزه داره رو بخورم ، البته بعد از افطار ، اخخخ من چقدر لوسم !!!راستی با نظراتون خیلی حال کردم! دم همتون گرم! منو وادار کردید دوباره بنویسم!!!
.::شهریار::.

مطالب مرتبط

کد مطالب مرتبط را در اینجا قرار دهید

ارسال دیدگاه

*
برای اینکه ثابت کنید شما یک ارسال کننده جفنگ (یک اسکریپت جفنگ نویس)
نیستید،کلمه امنیتی را که در تصویر نقش بسته است در فیلد پایین بنگارید .
قبل از ارسال به موارد زیر توجه کنید :
1- دعوت نامه پرشین گیگ نداریم.
2- از تبلیغ بپرهیزید.
3- کلمات نا مناسب و توهین آمیز به کار نبرید.
از دیدگاه شما متشکریم.

Click to hear an audio file of the anti-spam word

درباره من

در این وبلاگ ، جستار ها و دست نوشته های مرا در باره امنیت و ضد امنیت خواهید خواند.برای دسترسی به مقالات نوشته شده در وادی ضد امنیت و امنیت از دسته بندی {مقالات} استفاده کنید.


نامه برقي اينجانب
یافتن مطالب :