مجموعة أدوات Ghidra هذه عبارة عن مجموعة شاملة من الأدوات المصممة لتبسيط وأتمتة المهام المختلفة المرتبطة بتشغيل Ghidra في وضع Headless. توفر مجموعة الأدوات هذه مجموعة واسعة من البرامج النصية التي يمكن تنفيذها داخل Ghidra وبجانبه، مما يمكّن المستخدمين من أداء مهام مثل البحث عن الثغرات الأمنية، والتعليق على التعليمات البرمجية الزائفة باستخدام ChatGPT، وإعداد التقارير باستخدام تصور البيانات على قاعدة التعليمات البرمجية التي تم تحليلها. يسمح للمستخدم بتحميل وحفظ البرنامج النصي الخاص به والتفاعل مع واجهة برمجة التطبيقات المضمنة للبرنامج النصي.
أتمتة وضع مقطوعة الرأس : تتيح مجموعة الأدوات للمستخدمين تشغيل Ghidra وتشغيله بسلاسة في وضع بدون رأس، مما يسمح بالمعالجة الآلية والدفعية لمهام تحليل التعليمات البرمجية.
مستودع/إدارة البرامج النصية : تتضمن مجموعة الأدوات مستودعًا للنصوص البرمجية المعدة مسبقًا والتي يمكن تنفيذها داخل غيدرا. تغطي هذه البرامج النصية مجموعة متنوعة من الوظائف، وتمكين المستخدمين من إجراء مهام التحليل والمعالجة المتنوعة. فهو يسمح للمستخدمين بتحميل وحفظ البرامج النصية الخاصة بهم، مما يوفر خيارات المرونة والتخصيص لمتطلبات التحليل المحددة الخاصة بهم. يمكن للمستخدمين بسهولة إدارة وتنظيم مجموعة البرامج النصية الخاصة بهم.
خيارات إدخال مرنة : يمكن للمستخدمين الاستفادة من مجموعة الأدوات لتحليل الملفات الفردية أو المجلدات بأكملها التي تحتوي على ملفات متعددة. تتيح هذه المرونة إجراء تحليل فعال لكل من قواعد التعليمات البرمجية صغيرة الحجم وواسعة النطاق.
صيد الثغرات الأمنية من خلال التعرف على الأنماط : استفد من البرامج النصية لمجموعة الأدوات لتحديد نقاط الضعف المحتملة داخل قاعدة التعليمات البرمجية التي يتم تحليلها. وهذا يساعد الباحثين والمطورين الأمنيين على اكتشاف نقاط الضعف الأمنية ومعالجتها بشكل استباقي.
صيد الثغرات الأمنية باستخدام SemGrep : بفضل الباحث الأمني 0xdea ومجموعة القواعد التي أنشأها، يمكننا استخدام قواعد بسيطة وSemGrep لاكتشاف الثغرات الأمنية في الكود الزائف C/C++ (github الخاص بهم: https://github.com/0xdea/semgrep -قواعد)
إنشاء كود زائف تلقائيًا : إنشاء كود زائف تلقائيًا داخل وضع Ghidra بدون رأس. تساعد هذه الميزة في فهم وتوثيق منطق التعليمات البرمجية دون تدخل يدوي.
تعليق التعليمات البرمجية الزائفة باستخدام ChatGPT : عزز إمكانية القراءة وفهم قاعدة التعليمات البرمجية من خلال استخدام ChatGPT لإنشاء تعليقات شبيهة بالإنسان لمقتطفات التعليمات البرمجية الزائفة. تساعد هذه الميزة في توثيق وشرح منطق الكود.
إعداد التقارير وتصور البيانات : إنشاء تقارير شاملة مع تصورات لتلخيص نتائج التحليل وعرضها بشكل فعال. توفر مجموعة الأدوات إمكانات تصور البيانات للمساعدة في تحديد الأنماط والتبعيات والشذوذات في قاعدة التعليمات البرمجية.
قبل استخدام هذا المشروع، تأكد من تثبيت البرنامج التالي:
غيدرا: يمكنك تنزيل غيدرا من مستودع GitHub الخاص بوكالة الأمن القومي @ https://github.com/NationalSecurityAgency/ghidra
Java: تأكد من تثبيت الإصدار 17 من Java Development Kit (JDK) أو أعلى. يمكنك تنزيله من موقع OpenJDK @ https://openjdk.org/projects/jdk/17/
BinExport (اختياري) اتبع تعليمات تثبيت ملحق Ghidra https://github.com/google/binexport
SemGrep (اختياري) اتبع التعليمات المفصلة https://semgrep.dev/docs/getting-started/
تثبيت المتطلبات المسبقة المذكورة أعلاه.
قم بتنزيل إصدار Sekiryu مباشرة من Github أو استخدم: pip install sekiryu
.
من أجل استخدام البرنامج النصي، يمكنك ببساطة تشغيله مقابل ثنائي مع الخيارات التي تريد تنفيذها.
sekiryu [-F FILE][OPTIONS]
يرجى ملاحظة أن إجراء التحليل الثنائي باستخدام Ghidra (أو أي منتج آخر) يعد عملية بطيئة نسبيًا. وبالتالي، توقع أن يستغرق التحليل الثنائي عدة دقائق اعتمادًا على أداء المضيف. إذا قمت بتشغيل Sekiryu ضد تطبيق كبير جدًا أو كمية كبيرة من الملفات الثنائية، فكن مستعدًا للانتظار
ابحث عن العرض التوضيحي على www.bushido-sec.com
The "server.py" is basically built to allow scripts to interract with Ghidra each other and with the host system. An User can easily develop their own script, load and saved it in the script folder and use the known functions of the API to interract with Ghidra.
من أجل استخدامه، يجب على المستخدم استيراد xmlrpc في البرنامج النصي الخاص به واستدعاء الوظيفة مثل على سبيل المثال: proxy.send_data
send_data() - يسمح للمستخدم بإرسال البيانات إلى الخادم. ("البيانات" هي قاموس)
()recv_data - يسمح للمستخدم بتلقي البيانات من الخادم. ("البيانات" هي قاموس)
request_GPT() - يسمح للمستخدم بإرسال بيانات السلسلة عبر ChatGPT API.
يتم حفظ البرامج النصية في المجلد /modules/scripts/ ويمكنك ببساطة نسخ البرنامج النصي الخاص بك هناك. في ملف ghidra_pilot.py
، يمكنك العثور على الوظيفة التالية المسؤولة عن تشغيل برنامج Ghidra النصي بدون رأس:
def exec_headless(file, script): """ تنفيذ التحليل بدون رأس لغيدرا """path = ghidra_path + 'analyzeHeadless'# إعداد المتغيراتstmp_folder = "/tmp/out"os.mkdir(tmp_folder) cmd = ' ' + tmp_folder + ' TMP_DIR -استيراد'+ ' '+ ملف + ' '+ "-حاشية "+ البرنامج النصي +" -deleteProject"# تشغيل الغيدرا باستخدام ملف محدد وتجربة نصية: p = subprocess.run([str(path + cmd)], shell=True,capture_output=True) os.rmdir(tmp_folder) باستثناء KeyError كـ e: print(e) os.rmdir(tmp_folder)
الاستخدام سهل جدًا، يمكنك إنشاء البرنامج النصي الخاص بك ثم قم فقط بإضافة وظيفة في ghidra_pilot.py
مثل:
حدد yourfunction(file): حاول: # إعداد scriptscript = "modules/scripts/your_script.py"# ابدأ وظيفة exec_headless في موضوع جديدthread = threading.Thread(target=exec_headless, args=(file, script)) thread.start () thread.join() باستثناء الاستثناء كـ e: print(str(e))
يعد الملف cli.py
مسؤولاً عن واجهة سطر الأوامر ويسمح لك بإضافة وسيطة وأمر مرتبطين على النحو التالي:
Analysis_parser.add_argument('[-ShortCMD]', '[--LongCMD]', help = "رسالة المساعدة الخاصة بك"، الإجراء = "store_true")
البرامج النصية/النصوص البرمجية/SCRIIIIIPTS : تم تصميم هذه الأداة لتكون مجموعة أدوات تتيح للمستخدم حفظ وتشغيل البرامج النصية الخاصة به بسهولة، ومن الواضح أنه إذا كان بإمكانك المساهمة في أي نوع من البرامج النصية (ستتم الموافقة على أي شيء مثير للاهتمام!)
التحسين : يتم الترحيب بأي نوع من التحسين وستتم الموافقة عليه ونشره تلقائيًا تقريبًا في كل إصدار، ويمكن أن تكون بعض الأشياء الجيدة: تحسين المهام المتوازية وتنظيف التعليمات البرمجية والتحسين الشامل.
تحليل البرامج الضارة : إنه جزء كبير لست على دراية به. يمكن لأي محلل برامج ضارة يرغب في المساهمة أن يقترح فكرة أو نصًا أو حتى تنفيذ تعليمات برمجية مباشرة في المشروع.
إعداد التقارير : أنا لست مهندسًا لتصور البيانات، إذا كان أي شخص يرغب في تحسين/المساهمة في هذا الجزء، فسيكون ذلك رائعًا للغاية.
The xmlrpc.server module is not secure against maliciously constructed data. If you need to parse untrusted or unauthenticated data see XML vulnerabilities.
A lot of people encouraged me to push further on this tool and improve it. Without you all this project wouldn't have been the same so it's time for a proper shout-out: - @JeanBedoul @McProustinet @MilCashh @Aspeak @mrjay @Esbee|sandboxescaper @Rosen @Cyb3rops @RussianPanda @Dr4k0nia - @Inversecos @Vs1m @djinn @corelanc0d3r @ramishaath @chompie1337 Thanks for your feedback, support, encouragement, test, ideas, time and care.
لمزيد من المعلومات حول بوشيدو سيكيوريتي، يرجى زيارة موقعنا على الإنترنت: https://www.bushido-sec.com/.