PDA

View Full Version : سوال: از کار انداختن دیباگر با یک روش ساده



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 دسترسی پیدا
کرد کدش رو قرار بده ممنون میشم.

ali ahwaz top
یک شنبه 07 خرداد 1391, 21:45 عصر
برنامه ای برای خواندن و نمایش PhysicalMemory:
این برنامه روی ویندوز 7 کار نمیکنه لطفا" اگه کسی میتونه اینو رفع اشکال کنه.

ali ahwaz top
پنج شنبه 11 خرداد 1391, 11:30 صبح
با سلام: ممنونم که استقبال نکردید خب حتما" موضوع تازست یا اینکه دوست ندارید کمک کنید یا اینکه.... ولی خدا بزرگه. راهش رو پیدا کردم برنامه ای که میگذارم رو اجرا کنید و کلید patch int1 رو بزنید. بعد ollydbg یا هر دیباگر دیگه ای که دوست دارید اجرا کنید و یه برنامه رو باهاش دیباگ کنید. واسه ویندوز 7 بایستی Compatibility برنامه من رو روی ویندوز XP تنظیم کنید.

ali ahwaz top
چهارشنبه 17 خرداد 1391, 17:00 عصر
سلام:
اینم سورسهای برنامه.

ali ahwaz top
شنبه 27 خرداد 1391, 21:12 عصر
با سلام:
اینم فوت آخر استادی که هم وقفه 1 و هم 3 رو زپلشک میکنه.
البته فایل dll از توی رم اجرا میشه خودتون ببینید.