فایل PDB چیست؟
یک فایل با پسوند .pdb یک فایل پایگاه داده برنامه است که حاوی اطلاعات اشکال زدایی برای یک فایل اجرایی کامپایل شده (EXE/DLL) است. فایل های PDB زمانی که یک برنامه کاربردی در حالت اشکال زدایی کامپایل می شود توسط کامپایلرهای مایکروسافت تولید می شوند. وجود فایل PDB می تواند به مهندسی معکوس یک فایل اجرایی کمک کند زیرا حاوی اطلاعات قابل توجهی در مورد تمام نمادهای ماژول ها است. به همین دلیل است که این فایل ها جدا از فایل اجرایی نهایی نگهداری می شوند. DgbHelp API مایکروسافت میتواند یک فایل PDB را برای به دست آوردن اطلاعاتی مانند عمومی و صادرات، نمادهای جهانی، نمادهای محلی، دادههای نوع، فایلهای منبع و شماره خطوط باز کند.
فرمت فایل PDB
PDB فرمت فایل اختصاصی مایکروسافت است و هنوز به طور رسمی در جایی مستند نشده است. با این حال، یک سند شروع here در دسترس است و می توان به آن ارجاع داد.
جریان های PDB
فایلهای PDB از جریانهای متعددی تشکیل شدهاند که هر جریان بهعنوان یک فایل مجزا مجازی عمل میکند و حاوی اطلاعات است. نویسندگان فایل PDB می توانند در این فایل ها بنویسند و فایل تنها پس از صدور یک commit صریح نهایی می شود. یک کامپایلر می تواند به نوشتن در یک فایل PDB ادامه دهد، اما تنها در صورتی که همه کدهای کاربر با موفقیت کامپایل شوند، کامپایل را انجام دهد. یک فایل PDB از جریان های زیر تشکیل شده است:
شماره جریان | مطالب | توضیحات کوتاه |
---|---|---|
1 | Pdb (هدر) | اطلاعات نسخه و اطلاعات مربوط به اتصال این PDB به EXE |
2 | Tpi (مدیر نوع) | همه انواع مورد استفاده در فایل اجرایی. |
3 | Dbi (اطلاعات اشکالزدایی) | مشارکتهای بخش و فهرست Mods را نگه میدارد |
4 | NameMap | دارای یک جدول رشته هش شده |
4-(n+4) | n Mod’s (اطلاعات ماژول) | هر جریان مد دارای نمادها و شماره خطوط برای یک compiland |
n+4 | هش نماد جهانی | شاخصی که امکان جستجو در نمادهای جهانی بر اساس نام |
n+5 | هش نماد عمومی | شاخصی که امکان جستجو در نمادهای عمومی بر اساس آدرس |
n+6 | رکوردهای نماد | سوابق نمادهای واقعی نمادهای جهانی و عمومی |
n+7 | تایپ کنید hash | هش استفاده شده توسط جریان TPI. |
هر جریان در یک فایل PDB از چندین صفحه تشکیل شده است که لزوماً به طور متوالی شماره گذاری نمی شوند.
سرصفحه PDB
یک فایل PDB دارای یک سربرگ است که شامل یک امضا برای شناسایی و اعتبارسنجی فرمت خاص است. طول امضا به فرمت PDB بستگی دارد. هدر ممکن است طولانی تر از یک صفحه باشد.
فراداده PDB
The PDB metadata is responsible to recognize all of the component streams, giving the length, and sequence of pages for each stream. Orders are given to streams consecutively; starting with 0. همچنین یک جریان ریشه نامرتب وجود دارد که حاوی برخی از ابرداده ها است.