رادار ۲ (Radare 2) (همچنین به عنوان R2 شناخته می‌شود) یک چارچوب کامل برای مهندسی معکوس و تجزیه و تحلیل دوتایی است؛ متشکل از مجموعه ای از امکانات کوچک است که می‌تواند با هم یا به‌طور مستقل از خط فرمان استفاده شود. ساخته شده در اطراف دیس‌اسمبلر برای نرم‌افزارهای کامپیوتری که کد منبع زبان مونتاژ را از کد ماشین قابل اجرا تولید می‌کند، آن از انواع فرمت‌های اجرایی برای پردازنده‌های مختلف و سیستم عامل‌ها پشتیبانی می‌کند.

Radare2
Radare2.svg
CutterUiScreenshot2.png
Shown is the graphical user interface of radare2 Cutter (2018)
نویسنده(های)
اصلی
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 رقابت کند.

معماری / فرمت‌های پشتیبانی شده

منابع

  1. "Releases - radare/radare2". Retrieved 14 January 2019 – via GitHub.
  2. Git repository
  3. .XBE فرمت فایل 1.1 بایگانی‌شده در ۲۳ سپتامبر ۲۰۱۵ توسط Wayback Machine

برای مطالعهٔ بیشتر

پیوند به بیرون