انواع Debugger
1- User Mode Debugger
بیشتر Debugger ها از این نوع هستند. این نوع Debugger ها برنامه هایی هستند که به Process های دیگر متصل شده و کنترل آنرا در دست میگیرند. مزیت دیگر آنها نصب و استفاده آسان از آنها میباشد. از طرف دیگر User Mode Debugger ها فقط میتوانند با یک Process کار کنند و کدهای User Mode درون آن Process را ببینند. گاهی اوقات شما با استفاده از این نوع Debugger برنامه ای را باز میکنید که چندین Process را شامل میشود که به نوعی به هم متصل هستند. در اینطور موارد شما ممکن است ندانید کد مورد نظر شما در کدام Process اجرا میشود. User Mode Debugger ها معمولاً مشکل خاصی ایجاد نمیکنند مگر اینکه برنامه ای که در حال Debug شدن میباشد دارای مولفه های Kernel Mode باشد (همانند Device Driver). بعضی از این نوع Debugger ها عبارتند از :
- OllyDbg
این Debugger توسط Oleh Yuschuk ساخته شده که شاید یکی از بهترین ها در نوع خود باشد، این Debugger دارای یک Disassembler بسیار قدرتمند بوده که برای افرادی که در زمینه مهندسی معکوس در سطح مبتدی هستند بسیار مناسب میباشد. وجود Analyzer در این Debugger باعث میشود که حلقه های تکرار و شرطها (for، switchو ...) و همچنین پارامترهای متدها به راحتی قابل تشخیص باشد. OllyDbg دارای امکان patching نیز میباشد به این ترتیب که میتوان تغییراتی در فایل اجرایی ایجاد نموده و آنرا ذخیزه نمود. این ابزار کاملا رایگان بوده و از سایت
[URL]http://home.t-online.de/home/Ollydbg[/URL]
قابل دریافت میباشد.
- WinDbg
یک Debugger رایگان بوده که سازنده آن شرکت Microsoft میباشد. در حالیکه تعدادی از ویژگیهای آن از طریق رابط کاربر قابل دسترسی هستند، دارای یک کنترلگر دستوری نیز میباشد. دارا ی یک Disassembler ضعیف بوده و امکانات دیگر آن نیز چندان برای کاربران ساده نیست.
[URL="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"]http://www.microsoft.com/whdc/devtoo...g/default.mspx[/URL]
- IDA Pro
یک User Mode Debugger است که دارای Assembler بسیار قدرتمند و همچنین امکانات Debug فراوان میباشد و میتوان گفت از قدرتمندترین Debuggerها میباشد. این Debugger رایگان نبوده ولی میتوان از نسخه های Trial آن استفاده نمود.
Decompiler
Decompiler یک سطح بالاتر از Disassembler میباشد. Decompiler یک فایل اجرایی را به عنوان ورودی دریافت نموده و سعی میکند کد سطح بالا را از آن تولید کند. با توجه به اینکه فایل اجرایی با چه ابزاری تولید شده باشد معمولاً Decompile کردن آنها غیر ممکن است.