IDA Pro چیست: IDA Pro، توسعه یافته توسط Hex-Rays، یک برنامه نرم افزاری معروف است که برای مهندسی معکوس کد باینری استفاده می شود. به عنوان یک disassembler و debugger، کاربران را قادر میسازد تا در جزئیات پیچیده فایلهای اجرایی، از جمله including executables ، shared libraries، object files و firmware به دقت بپردازند. IDA Pro با پشتیبانی از معماری های مختلف پردازنده و فرمت های فایل، ابزاری همه کاره برای تجزیه و تحلیل کد در پلتفرم های مختلف است.
بیایید ویژگی های داخلی IDA Pro را بررسی کنیم:
- جداسازی قطعات (disssembly)
- تجزیه و تحلیل کد (Code Analysis)
- اشکال زدا (Debugger)
- پشتیبانی از پردازشگر و فرمت فایل
- نمای نمودار
- رابط اسکریپت
- همکاری و اشتراک گذاری
پس از راهاندازی IDA، با پنجره اولیه روبرو میشوید که گزینه «Disassemble a New File» را برای باز کردن ارائه میدهد.
شکل 1: باز شدن پنجره
شکل 2: نمای اولیه IDA Pro
IDA Pro به صورت خودکار فرمت فایل فایل اجرایی را پس از باز کردن شناسایی و تشخیص می دهد. همچنین، کل فایل اجرایی را به طور کامل تجزیه و تحلیل می کند و یک آرشیو .idb )پایگاه داده ( ایجاد می کند. این آرشیو به عنوان یک پایگاه داده جامع شامل کدهای جدا شده، نتایج تجزیه و تحلیل و سایر اطلاعات مرتبط استخراج شده از فایل اجرایی است.
شکل 3: بارگذاری یک فایل جدید
در IDA Pro، فایلهای خاص اهداف مشخصی را دنبال میکنند:
ID0: این فایل حاوی محتویات پایگاه داده B-tree است. این داده ها و ساختارهای واقعی مورد استفاده توسط IDA Pro برای تجزیه و تحلیل، جداسازی قطعات و عملیات های مختلف دیگر را ذخیره می کند.
ID1: فایل .id1 دارای پرچم هایی است که توضیحاتی را برای هر بایت برنامه ارائه می دهد. این پرچم ها به شناسایی ویژگی های خاص کد در طول تجزیه و تحلیل کمک می کنند.
NAM: فایل .nam به عنوان نمایه ای عمل می کند که اطلاعات مربوط به مکان های برنامه نامگذاری شده را در خود جای می دهد. به ارجاع کارآمد و دسترسی به نهادهای نامگذاری شده در کد جدا شده کمک می کند و به درک کلی ساختار برنامه کمک می کند.
رابط های IDA Pro:
بیایید رابط های مهم و مفید IDA Pro را ببینیم.
- IDA View-A
- Hex View-A
- Strings
- imports
- exports
- Switches
- Help window
IDA View-A:
View-A نمای جداسازی قطعات اولیه را در IDA Pro نشان میدهد که این نما یک نمای کلی از دستورالعمل های اسمبلی برنامه ارائه می دهد و به کاربران اجازه می دهد تا عملکرد و منطق کد را پیمایش، تجزیه و تحلیل و درک کنند.
شکل 5: نمای عادی IDA-A
شکل 6: نمای تفصیلی IDA
نمای هکس:
نمایش هگزا دسیمال برنامه را نمایش می دهد که به راحتی نمایش هگزا دسیمال را با دستورالعمل های جداسازی مرتبط می کند و تجزیه و تحلیل جامع کد باینری برنامه را تسهیل می کند.
شکل 7: پنجره هگزا
نمای رشته:
پنجره رشته ها رشته های استخراج شده را در یک لیست سازماندهی می کند و به کاربران امکان می دهد که آنها را مرور، جستجو و دستکاری کنند. هر ورودی رشته معمولاً شامل خود مقدار رشته، آدرسی که در آن یافت شده و اطلاعات زمینهای اضافی است.
پنجره رشته ها کاربران را قادر می سازد تا ارجاعات متقابل به رشته ها را از قسمت های مختلف کد جدا شده مشاهده کنند. این ویژگی به شناسایی نحوه استفاده از رشته ها کمک می کند و بینشی در مورد عملکرد برنامه ارائه می دهد.
شکل 8: پنجره رشته ها
پنجره export و import
Exports: این بخش توابع یا نمادهای صادر شده توسط برنامه تحلیل شده را نمایش می دهد. توابع صادر شده معمولاً برای سایر ماژول ها یا فایل های اجرایی قابل دسترسی هستند و به آنها اجازه می دهد تا به عنوان یک رابط برای اجزای خارجی استفاده شوند.
Imports: در این بخش، پنجره توابع یا نمادهایی را که برنامه تحلیل شده از کتابخانه ها یا ماژول های خارجی وارد می کند، فهرست می کند. توابع وارداتی ارجاعاتی به توابعی هستند که برنامه به آنها متکی است اما به صورت خارجی پیاده سازی می شوند.
شکل 9: پنجره export و import
Import Functions:
شکل 10: import functions
Export functions:
شکل 11: export functions
switch:
شکل 12: switching shortcut Tiles
پنجره راهنما:
شکل 13: پنجره راهنما
نتیجه گیری:
به طور خلاصه، IDA Pro یک ابزار قدرتمند و همه کاره برای مهندسان معکوس، محققان امنیتی و تحلیلگران نرم افزار است. ویژگی های قوی آن، مانند جداسازی، تجزیه و تحلیل کد، اشکال زدایی، و پشتیبانی از معماری های مختلف پردازنده و فرمت های فایل، تجزیه و تحلیل عمیق و درک کد باینری را امکان پذیر می کند.
در حالی که این نمای کلی نگاهی اجمالی به قابلیت های IDA Pro ارائه می دهد، متخصصان امنیتی می توانند به گسترش دانش، مهارت ها و کاربرد این ابزار قدرتمند ادامه دهند و پتانسیل کامل آن را برای چالش های امنیتی پیچیده باز کنند.