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

مهندسی معکوس (مقدماتی بر دیباگر windbg):

WinDbg یک دیباگر ساخت مایکروسافت است که همراه بسته‌های SDK و WDK نصب می‌شود. بنابراین اگر WDK را نصب کرده باشید و گزینهٔ دیباگر را انتخاب کرده باشید، WinDbg روی سیستم شما وجود دارد.

برای توسعه یا اشکال‌زدایی درایورها آشنایی با دیباگرهایی مثل WinDbg (یا قدیم‌تر SoftIce) الزامی است؛ چون هم برای رفع اشکال لازم است و هم برای مشاهده‌ی ساختارها و توابع مستندنشدهٔ ویندوز که مایکروسافت اطلاعات رسمی دربارهٔ آن‌ها منتشر نکرده است—مثل ساختار EPROCESS.

هدف این آموزش این است که یاد بگیریم با استفاده از WinDbg، اطلاعات مستندنشده یا کم‌مستند را خودمان استخراج کنیم. البته برخی از این موارد قبلاً توسط پژوهشگران دیگر بررسی شده‌اند و می‌توان با کمی جستجو از نتایج کار آنها هم استفاده کرد.


در این حالت ما نمی‌توانیم سیستم را واقعاً دیباگ کنیم، اما می‌توانیم اطلاعاتی مثل کد اسمبلی توابع، ساختارها و اطلاعات داخلی کرنل را استخراج کنیم. چون هدف ما فقط همین است، این حالت گزینهٔ مناسبی محسوب می‌شود.

برای ورود به این حالت، WinDbg را با دسترسی Administrator باز کرده و از منوی File → Kernel Debug استفاده کنید.

از ویندوز Vista به بعد باید با ابزار bcdedit قابلیت اشکال زدایی را فعال کنیم. در واقع می گوییم هنگام راه اندازی سیستم این قابلیت فعال باشد. یک cmd باز کنید و دستور زیر را وارد کنید. بعد یکبار سیستم را راه اندازی مجدد کنید.

bcdedit /debug on

یک پوشه در آدرس زیر درست کنید.
C:\localsymbols

خط زیر رو درون باکس زیر مینویسیم:

srv*C:\localsymbols*https://msdl.microsoft.com/download/symbols

عکس زیر نشان دهنده این است که سیمبول ntkrnlmp.pdb به درستی دانلود و لود شده:


دانلود تمام PDB های کرنل مربوط به نسخه سیستم‌عامل:

CMD را با Run as Administrator باز کن و دستور زیر را اجرا کن:

"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /r C:\Windows\System32\drivers /s srv*C:\localsymbols*https://msdl.microsoft.com/download/symbols

(ممکنه آدرس در سیستم شما به صورتی دیگر باشد.)

Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com

مهندسی معکوسwindows
۰
۰
سید عمید قائم مقامی
سید عمید قائم مقامی
برنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
شاید از این پست‌ها خوشتان بیاید