
أدلة تركز على الهندسة العكسية للبرمجيات الخبيثة مع فحص عميق لملفات PE/.NET، وإعادة البناء عبر Ghidra، وفحوصات متقاطعة بالذكاء الاصطناعي، وYARA، وتصحيح أخطاء ELF
AIDebug هي أداة سطر أوامر وواجهة طرفية لتحليل البرمجيات الخبيثة عكسيًا مع التركيز على الأدلة. تجمع بين الفرز الأولي الحتمي دون اتصال، وفحص الملفات السداسي الكامل، وتحليل بنية PE العميق، وفك التجميع عبر Capstone، وإعادة البناء عبر Ghidra، وفحوصات LLM اختيارية، وتصحيح أخطاء ELF محلي، وتمارين تعليمية مُجمَّعة، وتقارير لمراجعة المحللين.
إصدار المصدر الحالي: AIDebug 3.1.0. راجع ملاحظات إصدار 3.1.0.
يبقى أحدث إصدار منشور غير قابل للتغيير
AIDebug v3.0.0،
متاحًا باسم 1200km-aidebug،
حتى يكتمل وسم 3.1.0 المطابق للإصدار وإصدار GitHub عبر سير عمل النشر الموثق.
ثبّت الحزمة المستقرة من PyPI:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install 1200km-aidebug==3.0.0
aidebug --version
ثبّت القدرات الاختيارية حسب الحاجة:
# مزودو LLM عن بُعد/محليون وتوليد YARA مُتحقق منه
python -m pip install "1200km-aidebug[ai]==3.0.0"
# أدوات Frida الديناميكية
python -m pip install "1200km-aidebug[dynamic]==3.0.0"
# جميع تكاملات Python الاختيارية
python -m pip install "1200km-aidebug[all]==3.0.0"
للتطوير:
git clone https://github.com/anpa1200/AIDebug.git
cd AIDebug
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev,dynamic]"
Ghidra وGDB وBubblewrap ومترجم C ومكونات Frida المستهدفة هي أدوات خارجية تُستخدم فقط في سير العمل التي تتطلبها.
افتح عينة PE أو ELF في الواجهة الطرفية الرئيسية:
aidebug --binary /path/to/sample.exe --offline
شغّل التحليل الحتمي دون واجهة ملء الشاشة وصدّر الأدلة:
aidebug --binary /path/to/sample.exe \
--offline --no-tui --report --json-export --yara \
--out-dir reports/
استخدم إعادة بناء Ghidra:
aidebug --binary /path/to/sample.exe --offline --no-tui --decompile
aidebug --binary /path/to/sample.exe --offline --no-tui \
--decompile-all reports/sample-reconstruction.c
حلّل وحدة ترجمة C واحدة عبر أثر ELF مؤقت غير منفَّذ:
aidebug --source /path/to/example.c --offline --no-tui
حدّد هوية ملف عشوائي بغض النظر عن امتداده:
aidebug --identify /path/to/renamed-or-unknown-file --offline
يُبلغ --identify بـ JSON منظم يتضمن النوع المُعلَن، ونوع MIME، والامتدادات
الشائعة، والثقة، والطريقة، والأدلة، وSHA-256، والحجم. التغطية الحتمية
تشمل صيغ الملفات القابلة للتنفيذ والبايتكود الشائعة، والأرشيفات وصور الأقراص،
وحاويات Office/OpenDocument/EPUB، والمستندات، والصور، والصوت/الفيديو،
والتقاطات الحزم، وقواعد البيانات، وأدلة السجل/سجلات الأحداث، والبرامج النصية، والنصوص.
تُفحص الصيغ المعتمدة على ZIP عبر أسماء الأعضاء المحدودة وقراءات بيانات وصفية صغيرة؛
لا تُنفَّذ الملفات أو تُستخرج أبدًا.
ثبّت python-magic بالإضافة إلى قاعدة بيانات libmagic الخاصة بنظام التشغيل
للحصول على توقيعات إضافية معروفة للمنصة المحلية:
python -m pip install python-magic
عند عدم تطابق أي توقيع حتمي أو بنية أو قاعدة نصية، قد يستنتج مزود ذكاء اصطناعي
مُهيأ مرشحًا من بيانات وصفية محدودة: الامتداد، والحجم، وSHA-256، وما يصل إلى
96 بايتًا من الرأس، و32 بايتًا من الذيل، وعينة الإنتروبيا، ونسبة NUL.
لا يُرسل جسم الملف أو السلاسل المستخرجة أو مسار نظام الملفات. النتائج المعتمدة
على الذكاء الاصطناعي فقط تُوسم بـ ai-inference، وتُحدَّ بثقة 60%، وتتطلب
تحقق المحلل. استخدم --offline لتعطيل الاحتياطي تمامًا؛ يُبلَّغ عن النوع
غير المُحلَّل كـ Unknown مع حالة خروج 2.
اضغط S في الواجهة الطرفية الرئيسية، أو ابدأ مباشرة في مساحة العمل:
aidebug --binary /path/to/sample.exe --offline --strings
تحافظ مساحة العمل على إزاحات الملفات، والعناوين المُخطَّطة عند توفرها، والترميز، وأطوال البايتات والأحرف، ومعلومات مواضع التكرار، وسياق القسم، والثقة، ودرجة الفرز الأولي، والأسباب الحتمية لكل تصنيف. تغطي المرشحات الحد الأدنى للطول والترميز والفئة والبحث بالنص الحر؛ ويُبقي فرز الأعمدة وترقيم الصفحات المخزونات الكبيرة قابلة للاستخدام. يفحص كل ترميز محدد الأثر الكامل المحدود الحجم. يُحدَّ المخزون المحتفظ به بـ 25,000 سجل و4,096 حرفًا معروضًا لكل قيمة؛ وتجعل أعداد المرشحات/الاستبعادات الدقيقة وتغطية البايتات الكاملة أي حد مرئيًا. يحتفظ كل سجل بما يصل إلى 32 تعليقًا توضيحيًا لـ DLL/API و4,096 حرف وصف؛ تُبلَّغ التجاوزات العدائية في أسباب السجل.
الاكتشاف متعدد التصنيفات. يمكن أن تكون القيمة الواحدة في الوقت نفسه DLL،
أو مسار Windows، أو URL، أو عنوان IP، أو مفتاح سجل، أو أمرًا، أو جزء PowerShell،
أو أنبوبًا مسمى، أو تجزئة، أو مرشح بيانات اعتماد، أو وكيل مستخدم، أو نوع أدلة
مدعومًا آخر. تُطبَّع مرشحات النطاقات عبر IDNA وتُفحص مقابل لقطة IANA
للمنطقة الجذرية معبأة دون اتصال؛ يجب أن تشغل عناوين IP رمزًا كاملًا صالحًا،
ويجب أن تتطابق تعيينات التكوين مع قواعد نحوية متحفظة لسطر كامل. هذا
يمنع ترقية أجزاء ثنائية قصيرة لمجرد احتوائها على نقطة أو نقطتين أو علامة يساوي.
تتقاسم التصنيفات المرتبطة عائلة ثقة واحدة، لذا لا يُعتبر
ip_address مع ipv6 ملاحظتين مستقلتين. تحصل DLLs وAPIs المعروفة على
أوصاف قدرات محايدة قصيرة؛ وتحصل الأسماء غير المعروفة على احتياطي صريح
غير مُتحقق منه بدلًا من غرض مُخمَّن. الاسم المستخرج دليل على الوجود،
وليس إثباتًا على أن الكود استدعاه أو أن العينة خبيثة.
اطبع المخزون الحتمي محليًا، أو صفِّ عرض CLI، أو اكتب المخزون الكامل القانوني كـ JSON مملوك للمستخدم فقط:
aidebug --binary /path/to/sample.exe --strings --no-tui
aidebug --binary /path/to/sample.exe --strings --no-tui \
--string-encoding ascii --min-string-length 6 --string-category url
aidebug --binary /path/to/sample.exe --strings --no-tui \
--strings-output reports/sample-strings.json
مراجعة السلاسل عبر الذكاء الاصطناعي إجراء اختياري منفصل. اضغط A داخل مساحة
العمل وأكّد تحذير الخصوصية/التكلفة، أو اطلبها صراحةً في وضع CLI:
aidebug --binary /path/to/sample.exe --strings --no-tui \
--analyze-strings --accept-ai-cost \
--strings-output reports/sample-strings-ai.json
تُخصص لكل سلسلة محتفظ بها معرّف أدلة مستقر. بعد التأكيد الصريح،
يخطط مسار الذكاء الاصطناعي لكل سجل محتفظ به عبر أجزاء حتمية محدودة؛
تتوقف فشلات المزود أو التحقق بأمان وتبقى مرئية. يجب أن تحسب الاستجابات
لكل معرّف مُقدَّم وأن تجتاز تحققًا محليًا صارمًا من المخطط والعدادات
والمراجع وتأصيل IOC قبل قبولها. يرى المُقلِّص النهائي النتائج المُتحقق منها
بدلًا من المخزون الخام. تُبلَّغ دائمًا حدود الاستخراج والدفعات الفاشلة
وأعداد المراجعة/الإرسال؛ وتفرض التغطية غير الكاملة تقييمًا إجماليًا
unknown. يمكن أن تحتوي السلاسل على كلمات مرور ورموز API وبيانات عملاء
وحقن أوامر من تأليف المهاجم، لذا راجع حدود البيانات البعيدة للذكاء الاصطناعي
قبل تفعيل هذه الميزة.
افحص التحليلات السابقة حسب الملف أو SHA-256:
aidebug --history /path/to/sample.exe
aidebug --history 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
حمّل ملف PE واضغط X (أو P) في الواجهة الرسومية الرئيسية. يعرض AIDebug
البايتات الدقيقة التي تم تجزئتها وينظم الأدلة الهيكلية في عروض محدودة قابلة للتنقل.
| المنطقة | الأدلة |
|---|---|
| الرؤوس | DOS وNT وCOFF والرأس الاختياري والخصائص وفهارس البيانات وعلامات التخفيف |
| الأقسام | حقول IMAGE_SECTION_HEADER الكاملة والنطاقات المُخطَّطة والإنتروبيا والأذونات |
| الواردات والصادرات | واصفات الاستيراد وإدخالات INT/IAT والواردات المؤجلة والترتيبات والأسماء وRVAs والموجّهات |
| الموارد | تسلسل النوع/الاسم/اللغة والبيانات الوصفية والتجزئات والمعاينات والتصدير الآمن دون استبدال |
| عمليات النقل وASLR | كتل/إدخالات النقل وتقييم توافق ASLR الهيكلي |
| TLS | دليل TLS وبيانات القالب والفهرس وجدول الاستدعاءات والتعيينات وأدلة الإنهاء |
| الاستثناءات وفك الترجيع | دوال وقت تشغيل x64 وUNWIND_INFO والعمليات والمعالجات والسجلات المتسلسلة |
| تكوين التحميل | الحقول المُرقَّمة وعلامات Guard وأدلة حماية المكدس وتخفيف الاستغلال |
| CFG | مؤشرات الفحص/الإرسال وأهداف Guard Function ID والترتيب والقمع وفحوصات الاتساق |
| Authenticode | سجلات الشهادات وأدلة PKCS#7/X.509 ومقارنة تجزئة صورة PE والتحقق من الموقّع |
| التصحيح والمصدر | رأس Rich ودليل التصحيح وCodeView RSDS/NB10 ومعرّف PDB والعمر والمسار |
| التراكبات | الإزاحة الدقيقة والحجم والتجزئة والإنتروبيا والمعاينة والتصدير الآمن |
| .NET / CLR | رأس COR20 وجذر البيانات الوصفية والتدفقات وجداول ECMA-335 والتجميعات والمراجع والموارد |
لا ينفّذ AIDebug ملف PE أثناء بناء هذه العروض. التحقق الثابت من الشهادات ليس ثقة جذر Windows أو تحققًا من الإبطال، وبيانات Rich الوصفية ليست إسنادًا، وبيانات الاسم القوي الوصفية ليست ثقة ناشر، وعلامات التخفيف الثابتة ليست دليلًا على سياسة وقت تشغيل فعالة.
توفر هذه المقالات سير العمل الطويلة ولقطات الشاشة التي تكمل وثائق المستودع:
افتح الكتالوج الكامل أو ابدأ بحالة محددة:
aidebug --learn
aidebug --learn mov-load
aidebug --learn lea-arithmetic
aidebug --learn switch-dispatch
كل حالة مرفقة هي ملف مستقل تحت learning/cases/.
يُجمِّع AIDebug الحالة المحددة في ELF x86-64 مؤقت، ويعرض كود C الدقيق
والتعليمات المُولَّدة من المترجم، ويطلب من Ghidra إعادة بناء مستقلة،
ويسجل مصدر البناء، ويزيل الأثر المؤقت. لا يُنفَّذ ثنائي الدرس المُولَّد أبدًا.
استخدم --no-tui لمخرجات نصية، أو حمّل مجموعة خارجية مُراجَعة:
aidebug --learn movsxd --no-tui
aidebug --learn --learning-collection /path/to/reviewed-cases
تحليل الذكاء الاصطناعي اختياري. يبقى الوضع الحتمي دون اتصال متاحًا دون بيانات اعتماد.
python -m pip install "1200km-aidebug[ai]==3.0.0"
cp .env.example .env
chmod 600 .env
هيئ مزودًا واحدًا بالضبط، أو عيّن AIDEBUG_LLM_PROVIDER صراحةً عندما
توجد عدة بيانات اعتماد:
AIDEBUG_LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=replace_with_your_key
# بدائل:
# OPENAI_API_KEY=replace_with_your_key
# GEMINI_API_KEY=replace_with_your_key
# OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
استخدم AIDEBUG_ENV_FILE=/absolute/path/to/private.env لإبقاء التكوين بعيدًا
عن أدلة التحليل غير الموثوقة. يتطلب التحليل الجماعي عن بُعد إقرارًا صريحًا
بـ --accept-ai-cost. راجع حدود البيانات البعيدة للذكاء الاصطناعي
قبل إرسال أدلة العينات إلى أي مزود.
ينفّذ الوضع النشط المدعوم بـ GDB ملف ELF المحلي المحدد. استخدمه فقط داخل مختبر معزول ومصرح به:
aidebug --binary ./sample.elf --mode debug --breakpoint main
تشمل الأوامر المتاحة break وcontinue وstep وnext وfinish
وregisters وchanges وio وdisassemble وquit. يتوفر وضع Frida الديناميكي
بشكل منفصل لسير عمل الأدوات المحلية أو البعيدة المدعومة.
| المخرج | الاستخدام المقصود |
|---|---|
| تقرير HTML | المراجعة البشرية وملاحظات الحالة |
| JSON مُرقَّم الإصدار | إدخال تكامل مخصص؛ ليس مخططًا أصليًا للمورد أو STIX |
| JSON استخبارات السلاسل | مخزون السلاسل القانوني المحتفظ به بالإضافة إلى تعليقات الذكاء الاصطناعي المُتحقق منها والتغطية |
| مرشحات YARA | بذور هندسة اكتشاف مُجمَّعة محليًا تتطلب مراجعة واختبارًا |
| مرشحات ATT&CK | فرضيات على مستوى التقنية تتطلب تحقق المحلل |
| تصور CFG | مراجعة تدفق التحكم على مستوى الدالة |
| سجل SQLite | أدلة الجلسة المحلية واستعادة النتائج القائمة على SHA-256 |
flowchart LR
Input[PE, ELF, or C source] --> Parse[Bounded parsing and hashing]
Parse --> Structure[Hex and PE structure evidence]
Parse --> Strings[Deterministic string intelligence]
Parse --> Disasm[Capstone disassembly]
Disasm --> Patterns[Deterministic patterns]
Disasm --> Ghidra[Ghidra reconstruction]
Patterns --> Offline[Offline findings]
Patterns --> AI[Optional LLM cross-check]
Strings --> StringAI[Opt-in chunked string AI review]
Ghidra --> AI
Offline --> Reports[HTML, JSON, YARA, CFG]
AI --> Reports
StringAI --> StringJSON[Structured string JSON]
Reports --> History[SHA-256-indexed history]استخدم AIDebug فقط على البرامج والأنظمة المصرح لك بفحصها، داخل جهاز افتراضي أو مختبر معزول لتحليل البرمجيات الخبيثة.
اقرأ نموذج السلامة الكامل وسياسة الأمان وخطة القيود والتحقق قبل تحليل عينات غير موثوقة.
| المستند | الغرض |
|---|---|
| سير عمل المحلل | عملية تحليل قابلة للتكرار |
| نموذج السلامة | حدود الثقة والتشغيل الآمن |
| خطة التحقق | ادعاءات قدرة قابلة للاختبار |
| أدلة العينات | لقطات شاشة توضيحية وأثر وهمي |
| المقارنة | النطاق والتموضع |
| جاهزية الإصدار | بوابات إصدار قابلة للتكرار |
| ملاحظات إصدار AIDebug 3.1 | تغييرات إصدار المصدر الحالي |
| ملاحظات إصدار AIDebug 3.0 | تغييرات الإصدار المنشور السابق |
| سجل التغييرات | تاريخ الإصدارات |
شغّل الفحوصات المحلية السريعة:
python -m ruff check .
python -m pytest -q
شغّل بوابة الإصدار المعزولة الكاملة:
./scripts/release-readiness.sh
راجع CONTRIBUTING.md لإرشادات المساهمة. لا تُرفق برمجيات خبيثة حية أو بيانات اعتماد أو بيانات حالات خاصة أو أدلة غير منقّحة بالمشكلات أو طلبات السحب.
AIDebug مُصدَر بموجب رخصة MIT.