إطار التحليل الثنائي الثنائي Pharos Static هو مشروع لمعهد هندسة البرمجيات في جامعة كارنيجي ميلون. تم تصميم الإطار لتسهيل التحليل الآلي للبرامج الثنائية. يستخدم البنية التحتية لبرجمة روز التي طورها مختبر لورنس ليفرمور الوطني لتفكيكها ، وتحليل تدفق السيطرة ، ودلالات التعليمات ، وأكثر من ذلك. يتم إصدار هذا البرنامج بموجب ترخيص BSD.
التوزيع الحالي هو تحديث كبير للإصدار السابق ، ويضيف مجموعة متنوعة من الميزات بما في ذلك التحسينات على أداة OoAnalyzer ، ورمز تحليل المسار التجريبي ، وتحسينات partitioner ، ومتعددة الخيوط ، والعديد من الميزات الأصغر الأخرى.
إطار Pharos هو مشروع بحثي ، والرمز يخضع للتطوير النشط. لا يتم توفير أي ضمانات للياقة لأي غرض. بينما يوفر هذا الإصدار تعليمات الإنشاء واختبارات الوحدة وبعض الوثائق ، يبقى الكثير من العمل الذي يتعين القيام به. لقد اختبرنا بعض تكوينات الإنشاء المحددة ، لكننا لم نختبر بنشاط قابلية نقل الكود المصدري. راجع تعليمات التثبيت لمزيد من التفاصيل.
نظرًا لأن الهدف الأساسي لإصدار هذا الرمز هو توفير الشفافية في بحثنا وتحفيز المحادثة مع باحثو التحليل الثنائي الثنائي الآخرين ، فلا تتردد في الاتصال بـ Cory Cohen [email protected] مع الأسئلة التي قد تكون لديك حول هذا العمل. قد أكون غير قادر على الرد في الوقت المناسب ، لكنني سأبذل قصارى جهدي.
Apianalyzer هي أداة لإيجاد تسلسل لمكالمات API مع علاقات البيانات والتحكم المحددة. تهدف هذه القدرة إلى استخدام نماذج تفاعل نظام التشغيل المشتركة مثل فتح ملف ، والكتابة إليه ، وإغلاقه.
ooanalyzer هي أداة لتحليل واستعادة البنيات الموجهة للكائن. كانت هذه الأداة موضوعًا لورقة بعنوان "استخدام البرمجة المنطقية لاسترداد فئات وأساليب C ++ من المواد التنفيذية المترجمة" والتي تم نشرها في مؤتمر ACM حول أمان الكمبيوتر وأمن الاتصالات في عام 2018. تحدد الأداة أعضاء الكائن والأساليب عن طريق تتبع مؤشرات الكائنات بين الوظائف في البرنامج. تم تسمية التنفيذ السابق لهذه الأداة "Objdigger" ، ولكن تم إعادة تسميته لتعكس إعادة تصميم كبيرة باستخدام قواعد Prolog لاستعادة سمات الكائن. يدعم الإصدار الحالي من الأداة تحليل فقط لـ 32 بت X86 التنفيذيين التي تم تجميعها بواسطة Microsoft Visual C ++. للاطلاع على مزيد من الإرشادات التفصيلية حول كيفية تشغيل ooanalyzer على المناظر التنفيذية الكبيرة جدًا ، انظر هذه الملاحظات.
توزيع Pharos المستخدمة لتشمل مكونًا إضافيًا تم استيراده على معلومات OO التي تم تصديرها بواسطة Ooanalayzer في مجموعة أدوات الهندسة العكسية Ghidra. للحصول على هذه الوظيفة الآن وفي المستقبل ، قم بتثبيت البرنامج المساعد Kaiju Ghidra ، والذي يتضمن الوظيفة التي قدمها المكون الإضافي Ooanalayzer.
Callanalyzer هي أداة للإبلاغ عن المعلمات الثابتة لمكالمات API في برنامج ثنائي. إنه إلى حد كبير عرضًا لاتفاقية الاتصال الحالية ، وتحليل المعلمات ، وقدرات اكتشاف النوع ، على الرغم من أنها توفر أيضًا تحليلًا مفيدًا للرمز في البرنامج.
FN2YARA هي أداة لإنشاء توقيعات YARA لمطابقة الوظائف في برنامج قابل للتنفيذ. من المحتمل أن يكون للبرامج التي تشترك في أعداد كبيرة من الوظائف سلوكًا مشتركًا.
FN2Hash هي أداة لتوليد مجموعة متنوعة من التجزئة وغيرها من الخصائص الوصفية للوظائف في برنامج قابل للتنفيذ. مثل FN2YARA ، يمكن استخدامه لدعم تحليل التشابه الثنائي ، أو توفير ميزات لخوارزميات التعلم الآلي.
Dumpmasm هي أداة لإلقاء قوائم التفكيك من قابلة للتنفيذ باستخدام إطار Pharos في نفس النمط مثل الأدوات الأخرى. لم يتم الحفاظ عليها بنشاط ، ويجب أن تفكر في استخدام RosesiveSasseSemble القياسي بدلاً من http://rosecompiler.org/rose_html_reference/rosetools.html.