ali ahwaz top
یک شنبه 07 خرداد 1391, 18:49 عصر
با سلام خدمت اساتید برنامه نویس:
مطلبی که خیلی نظر من رو به خودش جلب کرده
تغییرات در جدول بردار وقفه (Interrupt Descriptor Table/Interrupt Vector Table)هستش که توی DOS
با چند دستور انجام میشد ولی توی ویندوز سخترین کار ممکن هستش:-)
ولی نه برای شما اساتید.
برای به دست آوردن آدرس بیس بردار وقفه از کد زیر استفاده میکنیم:
PUSH edx
SIDT FWORD PTR SS:[ESP-2]
POP edx
حال مقداری که در ثبات edx برگردانده میشود آدرس بیس هستش ولی به شرح زیر:
بعنوان مثال مقدار برگشتی برابر است با:8003F400
با تغییر آدرس فوق به 0003F400
میتوانید با دسترسی به PhysicalMemory آدرس وقفه ها را بدست بیاورید.
هر وقفه دارای هشت بایت رزرو شده است که با تغییر آن میتونید وقفه را از کار بیندازید.
البته نرم افزار XLDT هم مستش که میشه باهاش اینکار رو انجام داد.
مشکل کلی این سیستم این هستش که توی ویندوز 7 نمیشه به PhysicalMemory
دسترسی داشت که بشه تغییرات رو اعمال کرد.
اگر کسی میدونه توی ویندوز 7 چطوری میشه به PhysicalMemory دسترسی پیدا
کرد کدش رو قرار بده ممنون میشم.
مطلبی که خیلی نظر من رو به خودش جلب کرده
تغییرات در جدول بردار وقفه (Interrupt Descriptor Table/Interrupt Vector Table)هستش که توی DOS
با چند دستور انجام میشد ولی توی ویندوز سخترین کار ممکن هستش:-)
ولی نه برای شما اساتید.
برای به دست آوردن آدرس بیس بردار وقفه از کد زیر استفاده میکنیم:
PUSH edx
SIDT FWORD PTR SS:[ESP-2]
POP edx
حال مقداری که در ثبات edx برگردانده میشود آدرس بیس هستش ولی به شرح زیر:
بعنوان مثال مقدار برگشتی برابر است با:8003F400
با تغییر آدرس فوق به 0003F400
میتوانید با دسترسی به PhysicalMemory آدرس وقفه ها را بدست بیاورید.
هر وقفه دارای هشت بایت رزرو شده است که با تغییر آن میتونید وقفه را از کار بیندازید.
البته نرم افزار XLDT هم مستش که میشه باهاش اینکار رو انجام داد.
مشکل کلی این سیستم این هستش که توی ویندوز 7 نمیشه به PhysicalMemory
دسترسی داشت که بشه تغییرات رو اعمال کرد.
اگر کسی میدونه توی ویندوز 7 چطوری میشه به PhysicalMemory دسترسی پیدا
کرد کدش رو قرار بده ممنون میشم.