Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
AlphaGolang — نصوص IDApython البرمجية لتحليل ملفات Golang الثنائية | Kitploit
أدوات/GitHubGitHub/sentinelabs/alphagolang
التحليل الثابتالهندسة العكسيةمصممي الأخطاءتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubsentinelabs/alphagolang

AlphaGolang

نصوص IDApython البرمجية لتحليل ملفات Golang الثنائية

عرض المستودع
672737منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

AlphaGolang

بواسطة خوان أندريس غيريرو-سادة (JAG-S @ SentinelLabs)

الوصف:

AlphaGolang هي مجموعة من نصوص IDAPython لمساعدة مهندسي عكس البرامج الضارة على إتقان ملفات Go الثنائية. الفكرة هي تقسيم النصوص إلى خطوات ملموسة، وبالتالي تجنب النصوص المتجانسة الهشة، ومحاكاة المنهجية التي قد يتبعها المحلل عند التعامل مع ملف Go ثنائي.

النصوص مُفرَجة تحت ترخيص GPL (تقديرًا لـ GolangLoaderAssist الأصلي لـ Tim Strazzere الذي قمنا بإعادة هيكلته وتحديثه لـ python3، تحية لـ Tim :) ). المساهمات مرحب بها ومشجعة!

المتطلبات: IDA Pro (يفضل الإصدار v7.6+) و Python3 (ew) الخطوتان الأوليتان (recreate_pclntab و function_discovery_and_renaming) ستعملان على IDA v7.5- لكن النصوص بعد ذلك تتطلب IDAv7.6+. الإصدارات الأحدث هي الهدف المثالي للنصوص الأحدث في المستقبل.

المرجع الأصلي: محاضرة قمة Mandiant للدفاع السيبراني 2021 (الفيديو قيد الانتظار)

منهجية تحليل AlphaGolang

  • الخطوة 0: قاعدة YARA لتحديد ملفات Go الثنائية (PE/ELF/MachO)

    • identify_go_binaries.yara
      • فحص رأس بسيط + تعبير نمطي لسلسلة معرف بناء Go.
      • ربما يمكن تحسين نطاق طول معرف البناء.
  • الخطوة 1: إعادة إنشاء جدول pcln

  • recreate_pclntab.py (متوافق مع IDA v7.5-)
    • يعيد إنشاء قسم gopclntab من الاستدلالات.
    • مفيد بشكل أساسي لـ IDA v7.5-
  • الخطوة 2: اكتشاف الدوال بتجوال جدول pcln وإضافة أسماء للكل

    • function_renaming.py (متوافق مع IDA v7.5-)
      • مفصول من golang loader assist
      • يكشف بقوة عن الدوال المفقودة بناءً على جدول pcln
      • أصلح بعض مشكلات تنظيف أسماء الدوال من الانتقال إلى py3
      • أعيدت هيكلته لإضافة تحسينات لـ Go v1.18 بناءً على Panchan من Akamai! شكرًا لـ Alex (CycleOfTheAbsurd).
  • الخطوة 3: إظهار الدوال التي أنشأها المستخدم

    • categorize_go_folders.py (يتطلب IDA v7.6+)
      • يصنف الدوال تلقائيًا إلى مجلدات
      • يتطلب IDAv7.6 + تفعيل 'إظهار المجلدات' في عرض الدوال
      • تحديث 05.16.2022: إصلاح تعارض مع فرز المجلدات في IDA v7.7
      • يوصى بشدة بعكس البيانات الوصفية من Lumina قبل تشغيل هذا المكون الإضافي.
  • الخطوة 4: إصلاح مراجع السلاسل النصية

    • fix_string_cast.py
      • مفصول من golang loader assist
      • أضاف منطقًا لإلغاء تعريف كتل السلاسل النصية الموجودة مسبقًا قبل تعريف سلسلة جديدة
      • فحوصات العقلانية الجديدة تجعله أكثر فعالية بكثير
  • الخطوة 5: استخراج معلومات النوع (بواسطة إيفان كوياتكوفسكي)

    • extract_types.py
      • يعلق على وسائط جميع الاستدعاءات لـ newobject, makechan, إلخ.
      • يطبق نوع C الصحيح على هذه الكائنات ويعيد تسميتها
      • يحصل على الاسم القابل للقراءة البشرية ويضيفه كتعليق
  • إصلاحات معلقة ومجال للمساهمات:

    • fix_string_cast.py - لا يزال بحاجة إلى إعادة هيكلة + استدلالات تحميل سلاسل أفضل - قد يؤدي إلى تجميد في الملفات الثنائية الضخمة. - يفتقد بعض آليات تحميل السلاسل غير المباشرة.
    • extract_types.py
      • يعمل حاليًا على ملفات PE و Mach-O بالبحث عن أسماء الأقسام المضمنة .rdata أو __rodata.
      • يلزم وجود فحص / تنفيذ مناسب للأحجام المشفرة بـ varint

    الخطوات التالية:

    • تتبع مراجع السلاسل بواسطة الدوال التي أنشأها المستخدم
    • إنشاء توقيعات YARA تلقائيًا بناءً على دوال المستخدم
    • إنشاء مخرجات كود زائف من Hex-Rays للدوال التي أنشأها المستخدم
    • تعيين نقاط توقف تلقائيًا للتحليل الديناميكي للوسائط
    • ???

    الفضل يعود لـ:

    • تيم سترازير لإصداره golang_loader_assist الأصلي
    • ميلان بوهاتشيك (Avast Software s.r.o.) لمساعدته القيمة في فهم API idatree.
    • يواكيم كينيدي (Intezer)
    • إيفان كوياتكوفسكي (Kaspersky GReAT) للخطوة 5.
    • إيغور كوزنيتسوف (Kaspersky GReAT)
    • أليكس (المعروف بـ CycleOfTheAbsurd) من ESET لإعادة هيكلة الخطوة 2 لدعم Go v1.18.
    تنزيل الأداة