ویرگول
ورودثبت نام
عمید
عمیدبرنامه نویسی سیستم ویندوز.
عمید
عمید
خواندن ۱ دقیقه·۶ ماه پیش

زبان اسمبلی در ویندوز قسمت دوم(گرفتن آدرس جاری برنامه)

در 32-bit x86 معمولاً از این ترفند استفاده می‌شود:

  • call آدرس دستور بعدی را روی stack می‌گذارد

  • بعد با pop آن آدرس را می‌گیریم

این یک نمونه کامل MASM 32-bit است:

.386 .model flat,stdcall .stack 4096 ExitProcess proto, dwExitCode:dword .data .code main proc call get_eip get_eip: pop eax invoke ExitProcess, 0 main endp end main

در خط 14 در هنگام اجرای دستور call get_eip آدرس برگشت در استک ذخیره میشود و در خط بعد با انجام عمل pop eax آن مقدار داخل eax قرار میگیرد.

Telegram: @CaKeegan
Bale: @CaKeegan
Gmail : [email protected]

اسمبلیویندوز
۰
۲
عمید
عمید
برنامه نویسی سیستم ویندوز.
شاید از این پست‌ها خوشتان بیاید