رادار۲
رادار ۲ (Radare 2) (همچنین به عنوان R2 شناخته میشود) یک چارچوب کامل برای مهندسی معکوس و تجزیه و تحلیل دوتایی است؛ متشکل از مجموعه ای از امکانات کوچک است که میتواند با هم یا بهطور مستقل از خط فرمان استفاده شود. ساخته شده در اطراف دیساسمبلر برای نرمافزارهای کامپیوتری که کد منبع زبان مونتاژ را از کد ماشین قابل اجرا تولید میکند، آن از انواع فرمتهای اجرایی برای پردازندههای مختلف و سیستم عاملها پشتیبانی میکند.
نویسنده(های) اصلی | Sergi Alvarez (pancake) |
---|---|
توسعهدهنده(ها) | pancake and the core-contributors |
انتشار پایدار | 3.2.0[۱]
/ ۸ ژانویه ۲۰۱۹ |
مخزن | |
نوشتهشده با | سی (زبان برنامهنویسی)[۲] |
سیستمعامل | لینوکس، BSD, مکاواس، مایکروسافت ویندوز، هایکو (سیستمعامل), اندروید، آیاواس، سولاریس (سیستمعامل), MeeGo |
در دسترس به | زبان انگلیسی |
نوع | دیساسمبلر |
مجوز | گنو الجیپیال |
تاریخچه
ویرایشاین در فوریه ۲۰۰۶ با هدف ارائه یک رابط خط فرمان آزاد و ساده برای یک ویرایشگر هگزا دسیمال با پشتیبانی ۶۴ بیتی برای ایجاد جستجوها و بازیابی اطلاعات از هارد دیسکها، برای اهداف قانونی ایجاد شد. از آن زمان، این پروژه با تغییر هدف به سمت ارائه یک چارچوب کامل برای تجزیه و تحلیل دوتاییها در حالی که به اصول مختلف فلسفه یونیکس پایبند باشد، رشد کردهاست.
در سال ۲۰۰۹ تصمیم این شد تا آن را بهطور کامل بازنویسی کند، تا محدودیتهای طراحی اولیه را از بین ببرد. از آن زمان، پروژه همچنان به رشد خود ادامه داد، و چندین توسعه دهنده محلی را جذب کرد.
در سال ۲۰۱۶، اولین کنفرانس R2con با جمعآوری بیش از ۱۰۰ شرکت کننده، شامل گفتگوهای مختلف در مورد ویژگیهای مختلف و بهبود چارچوب در بارسلونا برگزار شد.
رادار۲ روی ارائههای چندگانه در چندین کنفرانس امنیتی برجسته مثل recon,[8] hack.lu,[9] 33c3,[3] و … تمرکز کردهاست.
ویژگیها و استفادهها
ویرایشاز آنجا که در ابتدا رابط کاربری گرافیکی (GUI) نداشت، آن دارای منحنی یادگیریی با شیب تند است. در اصل بر اساس ویرایشگر هگزا دسیمال ساخته شدهاست، در حال حاضر بسیاری از ابزارها و ویژگیها، و همچنین اتصال به چندین زبان را داراست. در همین حال، در آن یک WebUI و رابط کاربری گرافیکی خارجی Qt به نام کاتر (Cutter) (که قبلاً نام آن Iaito بود) وجود دارد.
تجزیه و تحلیل استاتیک
ویرایشرادار۲(Radare2) قادر به جمعآوری و جداسازی بسیاری از چیزها میباشد، اما آن همچنین میتواند با استفاده از نمودارها تفاوت دوتایی را انجام دهد، اطلاعاتی مانند نمادهای انتقال و انواع دیگر داده را استخراج کند. در داخل، از پایگاه داده NoSQL به نام sdb استفاده میکند تا اطلاعات تجزیه و تحلیل را که میتواند توسط رادار۲ (radare2) نتیجهگیری شود یا توسط کاربر به صورت دستی اضافه میشود، پیگیری کند. از آنجایی که قادر به مقابله با نرمافزارهای ناقص است، از سوی محققان امنیتی نرمافزاری نیز برای اهداف تحلیلی استفاده شدهاست.
تجزیه و تحلیل پویا
ویرایشرادار۲ (Radare2) دارای یک خطایاب داخلی است که آن سطح پایینتر از خطایاب گنو (GDB)کلاسیک است. با این حال، همچنین میتواند خود را با خطایاب گنو یا حتی WineDBG برای خطایابی دوتاییهای ویندوز در سایر سیستمها متصل کند. حتی با استفاده از VMWare می توان آن را به عنوان یک خطایاب هسته ای استفاده کرد. همچنین پشتیبانی از پروتکل WinDBG وجود دارد.
بهرهبرداری از نرمافزار
ویرایشاز آنجایی که دارای یک دیساسمبلر (disassembler) و یک خطایاب سطح پایین است، رادار۲(radare2) میتواند برای توسعه دهندگان سوء استفاده مفید باشد. این نرمافزار دارای ویژگیهایی است که در توسعه سوء استفاده میشود، مانند موتور جستجوگر ابزار ROP و تشخیص رفع خستگی. به خاطر انعطافپذیری نرمافزار و پشتیبانی از بسیاری از فرمتهای فایل، اغلب برای ضبط تیمهای پرچم و دیگر پرسنل امنیتی به کار گرفته میشود. رادار۲(radare2) همچنین میتواند در ایجاد شل کد با ابزار "ragg2"، شبیه به metasploit باشد.
برش (کاتر-cutter)
ویرایشکاتر (Cutter) اولین رابط کاربر گرافیکی (GUI) رسمی برای رادار۲(radare2) است. این هنوز یک پروژهٔ جوان است که عمدتاً بر کسانی است که به علت منحنی یادگیری هنوز کاربر رادار۲ (radare2) نیستند، زیرا آنها برنامههای CLI را دوست ندارند یا به دلیل سختی / بیثباتی رادار۲(radare2). این، جانشین پروژه قبلاً شناخته شده Iaito است که پس از آنکه در گیتهاب (Github)، به صورت منبع باز شد از آن خیلی کم نگه داری شد. بعدها، یک نسخه از Iaito گرفته شد و به شدت بازنویسی شد، دوباره بر پایه C++ و Qt. این گزینههای طراحی باعث میشود که آن یک برنامه کاربردی چند سکویی برای لینوکس، مک او اس و همچنین ویندوز باشد. در همان زمان آن به کاتر (Cutter) تغییر نام پیدا کرد. هدف کاتر (Cutter) این است که قابلیتهای گستردهای از رادار۲ (radare2) را استخراج و به رابط کاربر گرافیکی (GUI) کاربر پسند و جدید تبدیل کند که میتواند با سایر چارچوبهای اصلی تجزیه و تحلیلهای استاتیک و پویا مانند Hex-Rays Interactive Disassembler یا BinaryNinja رقابت کند.
معماری / فرمتهای پشتیبانی شده
ویرایش- فرمتهای فایل شناخته شده
- COFF و مشتقات، از جمله Win32 / 64 / PE عمومی
- ELF و مشتقات
- ماخ (ماخ) و مشتقات
- بازی پسر و بازی پسر پیشرفته کارتریج
- MZ (MS-DOS)
- کلاس جاوا
- Lua 5.1 و بایوت کد پایتون
- dyld cache demo[۳]
- Dex (Dalvik Executable)
- قالب Xbox xbe[۴]
- برنامهنویسی Plan9
- ماشین مجازی WinRAR[۵]
- سیستم فایل مانند خانواده ext , ReiserFS , HFS +، NTFS، FAT، . .
- فرمتهای فایل DWARF و PDB برای ذخیره اطلاعات اشکال زدایی اضافی
- دوتایی خام
- مجموعه آموزشی
- خانواده x86 اینتل
- ARM معماری
- اتل AVR سری
- Brainfuck
- Motorola 68k و H8
- ریکو 5A22
- MOS 6502
- ماشین مجازی PSOS Smartcard
- ماشین مجازی جاوا
- MIPS: mipsb / mipsl / mipsr / mipsrl / r5900b / r5900l
- PowerPC
- اسپارک خانواده
- سری TMS320Cxxx
- هسته RISC Argonaut
- اینتل ۵۱ سری: 8051 / 80251b / 80251s / 80930b / 80930s
- Zilog Z80
- CR16
- کمبریج سیلیکون رادیو (CSR)
- AndroidVM Dalvik
- DCPU-16
- بایستی EFI
- گیم بوی (مانند z80)
- بایاس کد جاوا
- مالبلگ
- MSIL / CIL
- نایس دوم
- فوقالعاده
- Spc700
- Systemz
- TMS320
- V850
- فضای سفید
- XCore
منابع
ویرایش- ↑ "Releases - radare/radare2". Retrieved 14 January 2019 – via GitHub.
- ↑ Git repository
- ↑
- ↑
- ↑
برای مطالعهٔ بیشتر
ویرایش- maijin (2016). The radare2 book. Retrieved 20 March 2016.
- monosource (2016). Radare2 Explorations. Retrieved 19 January 2017.
- pancake (2008). The original radare book (PDF). p. 152. Archived from the original (PDF) on 23 July 2015. Retrieved 30 January 2019.