
تحليل تلقائي لملفات SWF بناءً على بعض الاستدلالات. قابل للتوسيع عبر الإضافات.
ملاحظة: التعليمات التالية خاصة بـ Python3.
إذا كنت بحاجة إلى تثبيت FLASHMINGO على Python2.7، يمكنك مراجعة الإصدار 1.0 تحت علامة التبويب releases. خطوات التثبيت هي نفسها بشكل أساسي.
قم بتثبيت حزم Python3 المدرجة في requirements.txt.
يمكنك استخدام الأمر التالي: pip3 install -r requirements.txt
إذا كنت ترغب في استخدام وظيفة فك التجميع، فأنت بحاجة إلى تثبيت Jython. يمكن لمستخدمي Ubuntu/Debian تنفيذ apt install jython
استنساخ المشروع أو تنزيل الملف المضغوط.
FLASHMINGO هو إطار عمل لتحليل ملفات SWF. تقوم الأداة بفرز ملفات Flash المشبوهة تلقائيًا وتوجيه عملية التحليل الإضافية، مما يوفر موارد ثمينة في فريقك. يمكنك بسهولة دمج وحدات تحليل FLASHMINGO في سير عملك.
حتى يومنا هذا، لا يزال المحققون الجنائيون ومحللو البرامج الضارة يتعاملون مع ملفات SWF المشبوهة. إذا تكرر التاريخ، فقد يصبح التهديد الأمني أكبر حتى بعد انتهاء عمر Flash في عام 2020. ستستمر الأنظمة في دعم تنسيق ملف قديم لن يتم تحديثه بالتصحيحات الأمنية بعد الآن. الأتمتة هي أفضل طريقة للتعامل مع هذه المشكلة، وهنا يمكن لـ FLASHMINGO مساعدتك. FLASHMINGO هو إطار عمل لتحليل ملفات SWF تلقائيًا يمكّنك من وضع علامة على عينات Flash المشبوهة وتحليلها بأقل جهد. يتكامل مع سير عمل تحليلية مختلفة كتطبيق مستقل أو مكتبة قوية. يمكن للمستخدمين بسهولة توسيع وظائف الأداة عبر إضافات Python مخصصة.
FLASHMINGO مصمم مع مراعاة البساطة. يقرأ ملف SWF وينشئ كائنًا (SWFObject) يمثل محتوياته وبنيته. بعد ذلك، يقوم FLASHMINGO بتشغيل سلسلة من الإضافات التي تعمل على هذا SWFObject وتعيد قيمها إلى البرنامج الرئيسي.
أدناه رسم تخطيطي إلزامي بتنسيق ASCII:
+----------+
| |
+------------+----------->+ PLUGIN 1 +------------+
| | | | |
| | +----------+ |
| | |
| | +----------+ |
| | | | |
+---------+ | +----------->+ PLUGIN 2 +--------+ |
|SWF FILE +----------->+ FLASHMINGO | | | | |
+---------+ | | +----------+ | |
| | | |
| | | |
| | | |
| | +-----v---v-+
| | | |
| | | |
+-----+------+------------------------->+ SWFOBJECT |
^ | |
| | |
| +-----+-----+
| |
| |
| |
+---------------------------------------+
عند استخدام FLASHMINGO كمكتبة في مشاريعك الخاصة، ما عليك سوى الاهتمام بنوعين من الكائنات:
SWFObject واحد أو أكثر، يمثل العينة (العينات)Flashmingo. يعمل هذا بشكل أساسي كحزام يربط الإضافات بـ SWFObject(s).يتم تخزين إضافات FLASHMINGO في أدلتها الخاصة تحت... لقد خمنتها: plugins. عندما يتم إنشاء كائن Flashmingo، فإنه يمر عبر هذا الدليل ويعالج بيانات جميع الإضافات. إذا أشارت هذه البيانات إلى أن الإضافة نشطة، يتم تسجيلها للاستخدام لاحقًا. على مستوى الكود، يعني هذا إضافة قاموس صغير plugin_info إلى قائمة plugins.
يتم استدعاء الإضافات عبر API run_plugin مع وسيطين:
SWFObjectاختياريًا، تسمح لك معظم الإضافات بتمرير بيانات المستخدم الخاصة بك. هذا يعتمد على الإضافة (اقرأ الوثائق) ويمكن شرحه بسهولة أكبر بمثال. الإضافة الافتراضية SuspiciousNames ستبحث في جميع التجمعات الثابتة عن سلاسل تحتوي على سلاسل فرعية مشبوهة (على سبيل المثال: 'overflow', 'spray', 'shell', إلخ). توجد قائمة من السلاسل الفرعية الشائعة مشفرة بالفعل في الإضافة بحيث يمكن استخدامها as-is. ومع ذلك، يمكنك تمرير قائمة من السلاسل الفرعية المعرفة من قبلك، في هذه الحالة عبر المعامل names.
مثال كود:
fm = Flashmingo()
print fm.run_plugin('DangerousAPIs', swf=swf)
print fm.run_plugin('SuspiciousNames', swf=swf, names=['spooky'])
يأتي FLASHMINGO مع بعض الإضافات المفيدة جاهزة للاستخدام:
يتم توفير إضافة قالب لتسهيل التطوير. توسيع FLASHMINGO سهل إلى حد ما. اتبع هذه الخطوات البسيطة:
runأنت مستعد للانطلاق :)
docs للتوثيق المُولد تلقائيًا$ pip install sphinxcontrib-napoleon
بعد إعداد Sphinx لبناء وثائقك، قم بتمكين napoleon في ملف conf.py الخاص بـ Sphinx:
في conf.py، أضف napoleon إلى قائمة الامتدادات
extensions = ['sphinxcontrib.napoleon']
استخدم sphinx-apidoc لبناء توثيق API الخاص بك:
$ sphinx-apidoc -f -o docs/source projectdir
ينشئ هذا ملفات .rst ليقوم Sphinx بمعالجتها
$ make html
هذا كل شيء! :)