PDA

View Full Version : سوال: دستورهايي كه تو داس نوشته مي شن چه جوري بفهميم از چه وقفه هايي استفاده شدند؟



khodemoni
جمعه 28 خرداد 1389, 00:01 صبح
سلام به دوستان
من يه سوال داشتم .دستورهايي كه در داس نوشته مي شن چه جوري بفهميم از چه وقفه هايي استفاده شدند؟

heeeva
جمعه 28 خرداد 1389, 02:00 صبح
میشه سوالت رو واضح تر بگی ، یا حد افل یه مثال بزنی

مثالهایی از وقفه ها یا Interrupt

وقفه های زمان سنج Time:

این وقفه به سیستم عامل امکان می ده تا بعضی اعمال رو به صورت مرتب در یک پریودهای خاص زمانی انجام بده ، مثل تنظیم ساعت ، یا چک کردن سخت افزار و ...



وقفه های I/O :

این وقفه ها به وسیله کنترل کننده دستگاههای I/O تولید می شن تا کامل شدن طبیعی اجرای یک برنامه یا تمام شدن یک عمل توسط I/O مربوطه و یا احیانا بروز خطا در حین اجرای آن عمل را نشون بده .




وقفه های نقص سخت افزار یا وقفه هایMachine Check :

مثل وقفه ای که در اثر بروز خطای توازن رخ می ده ، یا وقفه ی نقص تغذیه سیستم.





وقفه (Super Visor Call) :
در واقع یک تقاضا از طرف برنامه کاربر جهت دریافت سرویس ویژه ای از سیستم عامل است.

khodemoni
جمعه 28 خرداد 1389, 11:48 صبح
مثلا دستور cls یا دستور دیگه ای که توی cmd نوشته می شن.چه جوری میشه مفهید که از چه وقفه ای استفاده کردند؟

tdkhakpur
جمعه 28 خرداد 1389, 12:22 عصر
مثلا دستور cls یا دستور دیگه ای که توی cmd نوشته می شن.چه جوری میشه مفهید که از چه وقفه ای استفاده کردند؟

دستور cls جزو دستورات داخلی کرنل هست ولی کلا این کار راه علمی ندارد فقط با بررسی محتوای فایل توسط ابزارهایی مانند td.exe یا مانند آن محتوای فایل را بصورت ویژال نگاه کنید و بررسی کنید که چه نوع وقفه هایی به کار برده شده است..

heeeva
شنبه 29 خرداد 1389, 06:07 صبح
در واقع شما با وقفه های نرم افزاری کار دارید من تو پست قبلی در مورد وقفه های سخت افزاری توضیح کوچیکی دادم اما
وقفه های نرم افزاری :


وقفه ها نرم افزاری در واقع بخشی از سيستم عامل ها هستند. مثلا وقفه های سيستم عاملDos

Dos اين نوع وقفه ها را برای اجرای API های خودش استفاده می کنه. و ما زمانی به این وقفه ها نیاز داریم که اگه به خوایم ، مثلا تو برنامه نویسی سطح پایین ارتباط مستقیمی با سخت افزار ها بر قرار کنیم .

شکل کلی وقفه ها به این صورته :

int n

n شماره وقفه موردنظر . دستور العمل Int یک روتینی از وقفه ای که شماره اون جلوش باشه رو فراخونی میکنه ،مرجع دستورات 8086 به همراه لیست وقفه ها و پورت های سخت افزاری تو فروم هست اینم لینکش
http://www.barnamenevis.org/forum/showthread.php?t=90984
شما چون میخوای بدونی که CLS از چه وقفه ای استفاده میکنه برو به لینک بالا نرم افزار رو دانلود کن و چون CLS صفحه رو پاک میکنه ، برو قسمت وقفه های داس بعد Video Intrupt (وقفه های ویدئو ) رو چک کن ببین جلوی int چه عددی قرار داره و چه توضیحی در مورد کارش داده ، مرجع کاملی هست و کاملا در مورد تک تک وقفه ها توضیح داده .

shask00l
شنبه 29 خرداد 1389, 07:56 صبح
برای انجام این کار دو راه به ذهنم میرسه .
راه اول رو جناب tdkhakpur گفتند . (باز کردن کد برنامه و ......) برای این کار برنامه هایی هم هست که مثلا میتونه بگه که برنامه به چه بخش هایی از حافظه دسترسی داشته . از طریق آدرس هایی که برنامه باهاشون کار کرده و آدرس وقفه ها میشه یه چیزایی فهمید.
راه دوم بررسی برنامه به کمک شبیه سازه . البته خودم این کارو انجام ندادم. یه جایی خونده بودم که میشه برنامه ها رو برای بررسی دقیق توی یه محیط شبیه سازی شده اجرا کرد و تمام کارهایی که انجام میدن رو از نزدیک بررسی کرد .

اگه به نتیجه ای رسیدید همینجا اعلام کنید . موضوع جالبیه .

موفق باشید.

heeeva
شنبه 29 خرداد 1389, 18:59 عصر
سوال ایشون در مورد وقفه های Dos بود ، و گفته شما هم درسته میشه بررسی دقیقی روی برنامه ها یا بهتر بگم عملکرد فایل های اجرایی انجام داد ، به عبارتی کد یه شخص دیگری رو تجزیه و تحلیل کرد ، برای این کار انواع Disassembler ها هستند که با تکنیک های خودشون برنامه در حال اجرا رو آنالیز میکنند و Register ها CPU و Stack های فعال حافظه رو میخونن ودر کل کد native رو به زبان اسمبلی بر میگردونند و اگه اسمبلیت خوب باشه میتونی تشخصی بدی این برنامه چی کار کرده و خیلی چیز های دیگه که همه اینا در مبحث Reverse Engineering مطرح میشه .

Delphi Coder
سه شنبه 01 تیر 1389, 14:25 عصر
من فکر میکنم بهتره برید وقفه ها رو مطالعه کنید تا ببینید هر کدوم به چه دردی میخورن تا اینکه بخوایید با reverse engineering خودتونو درگیر کنید.

heeeva
سه شنبه 01 تیر 1389, 21:54 عصر
من فکر میکنم بهتره برید وقفه ها رو مطالعه کنید تا ببینید هر کدوم به چه دردی میخورن تا اینکه بخوایید با reverse engineering خودتونو درگیر کنید.

اصلا منظور من این نبود که خودشون رو در گیر Reverse Engineering کنن .
دوستمون در مورد تجزیه و تحلیل فایل های اجرایی صحبت کرده بود من فقط اشاره کردم که مسائل رو قاطی نکن و اگه دوست دارن در این مورد بدونن تشریف ببرن قسمت مهندسی معکوس فروم .

xman_1365_x
یک شنبه 07 شهریور 1389, 17:42 عصر
كسي بررسي نكرد؟
براي من با خواندن حرف هاي شما اين سوال به وجود اومد كه
يعني بعد نوشته شدن كرنل داس و تخصيص وقفه 20h تا 3fh به سيستم عامل داس
خود اين سيستم عامل اومده مثلا براي انجام كارش از int 21h خودش استفاده كرده؟ يا خير
اگه كسي diassemble كرده و ديده بگه ما هم بدونيم.