
محرك تحليل ثابت قابل للتوسيع وحتمي النتائج، يستخرج مؤشرات الاختراق (IOCs) عالية الدلالة من ملفات PE الثنائية والنصوص، صُمم لأتمتة مراكز العمليات الأمنية (SOC) وخطوط أنابيب تحليل التهديدات الحديثة.
# IOCX
### **استخراج حتمي وخالٍ من المخاطر لمؤشرات الاختراق لخطوط أنابيب الأمن الحديثة**
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/7470/35e58092394d24631c5bf5a2ef49c2c64bb1726cc5798d35bdaa36800597e402.gif" width="720" alt="IOCX Demo">
</p>
<p align="center"><sub>استخراج ثابت لمؤشرات الاختراق من ملف PE باستخدام واجهة سطر أوامر IOCX</sub></p>
<p align="center">
<a href="https://pypi.org/project/iocx/"><img src="https://img.shields.io/pypi/v/iocx?logo=pypi&logoColor=white"></a>
<img src="https://img.shields.io/badge/tests-2802_passed-brightgreen">
<img src="https://img.shields.io/badge/coverage-100%25-brightgreen">
<img src="https://img.shields.io/badge/python-3.12-blue">
<a href="https://github.com/iocx-dev/iocx/actions"><img src="https://img.shields.io/github/actions/workflow/status/iocx-dev/iocx/ci.yml?label=build"></a>
<a href="https://github.com/iocx-dev/iocx/blob/main/LICENSE"><img src="https://img.shields.io/github/license/iocx-dev/iocx"></a>
</p>
# مشروع IOCX الرسمي
هذا هو محرك IOCX الأصلي لاستخراج مؤشرات الاختراق الثابت الحتمي وتحليل PE.
أي مستودعات أخرى تستخدم اسم "iocx" **غير تابعة** لهذا المشروع.
**الروابط الرسمية:**
- PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/)
- Github: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx)
- الموقع الإلكتروني: [https://iocx.dev/](https://iocx.dev/)
---
# لماذا يهم IOCX
البرمجيات الخبيثة الحديثة **عدائية بطبيعتها** — مشوهة، ومراوغة، ومصممة لكسر أدوات الاستخراج الساذجة.
- **الأدوات غير المدركة للثنائيات** تنهار أمام ملفات PE المشوهة
- **صناديق الرمل** غير آمنة وغير قابلة للاستخدام في CI/CD
- **قابلية إعادة الإنتاج** ضرورية لخطوط الأنابيب الآلية
**تم بناء IOCX للبيئات التي تكون فيها الصحة والحتمية مهمة فعلاً.**
---
# محرك IOCX
**IOCX هو محرك استخراج مؤشرات الاختراق الثابت الرسمي** — نظام حتمي ومدرك للثنائيات مبني لـ DFIR، وأتمتة SOC، وأمن CI/CD، وخطوط أنابيب استخبارات التهديدات واسعة النطاق.
على عكس أدوات الاستخراج القائمة على التعبيرات النمطية فقط أو الأدوات المعتمدة على صناديق الرمل، يقوم IOCX بـ:
- **تحليل ثابت خالص**
- **مخاطر تنفيذ صفرية**
- **مخرجات مستقرة وحتمية**
- **استدلالات مختبرة ضد الخصوم**
إنه مكون أساسي في منظومة MalX Labs لتحليل التهديدات الحديث القابل للتوسع.
---
# جرب IOCX في 10 ثوانٍ
```bash
echo "http://malicious.example" | iocx -
```
أو افحص ملف PE بأمان:
```bash
iocx suspicious.exe -a deep
```
---
# لماذا يوجد IOCX
تواجه فرق الأمن ثلاث مشاكل مستمرة:
1. **أدوات الاستخراج بالتعبيرات النمطية** تنكسر تحت المدخلات العدائية
2. **صناديق الرمل** غير آمنة وبطيئة وغير مناسبة للأتمتة
3. **معظم أدوات مؤشرات الاختراق** غير متسقة أو بطيئة أو تنتج مخرجات مختلفة بشكل طفيف بين التشغيلات
يحل IOCX هذا بـ **محرك حتمي ثابت فقط** مصمم للأتمتة والسلامة والتوسع.
---
# ما *ليس* عليه IOCX
IOCX عمداً **ليس**:
- صندوق رمل
- أداة تحليل سلوكي
- محاكي
- محرك إثراء
لا ينفذ أبداً كوداً غير موثوق.
لا يقوم أبداً بتحليل ديناميكي.
إنه **ثابت فقط بالتصميم** — من أجل السلامة والحتمية والتوافق مع CI/CD.
---
# فلسفة التصميم
تم هندسة IOCX لواقع البرمجيات الخبيثة الحديثة، وليس لافتراضات الأدوات القديمة.
### **1. الحتمية على الغموض**
مخرجات مستقرة وقابلة لإعادة الإنتاج — لا عشوائية، لا تقلب.
### **2. الثابت على الديناميكي**
التنفيذ غير آمن. التحليل الثابت قابل للتنبؤ وقابل للتوسع وصديق لـ CI.
### **3. هندسة العدائي أولاً**
ملفات PE المشوهة، وعناوين RVAs التالفة، والسلاسل العدائية — يتعامل معها IOCX كمدخلات عادية.
### **4. استقرار المخطط كعقد**
يجب ألا تنكسر الأنظمة اللاحقة عند الترقية.
### **5. الأداء دون تنازلات**
150–300 ميجابايت/ثانية على النص الخام.
6–15 ميجابايت/ثانية على ملفات PE النموذجية.
قابل للتنبؤ حتى تحت أسوأ حمل عدائي.
---
هذه الالتزامات مستمدة من منهجية بحثية منشورة لتحليل البنية الهيكلية لـ PE — بناء تركيبات حتمية، وانضباط الشذوذ الواحد، وسلوك محمل Windows كمعيار صحة. راجع docs/methodology.md للمنهجية الكاملة، و[paax.dev](https://paax.dev) لتصنيف PE العدائي الأوسع ومجموعة التركيبات التجارية.
# ما يجعل IOCX مختلفاً
| القدرة | **IOCX** | أدوات استخراج مؤشرات الاختراق النموذجية | أدوات صندوق الرمل / الديناميكية |
|-----------|-----------|------------------------|--------------------------|
| **السلامة** | صفر تنفيذ، ثابت فقط | تعبيرات نمطية فقط، لا سلامة ثنائية | تنفذ كوداً غير موثوق (خطر عالٍ) |
| **الحتمية** | مخرجات حتمية بالكامل | غير حتمية تحت الضوضاء | غير حتمية بالتصميم |
| **الوعي بالثنائيات** | تحليل PE كامل، استدلالات | لا دعم ثنائي | نعم، لكن غير آمن + بطيء |
| **المرونة العدائية** | مختبر ضد ملفات PE المشوهة والسلاسل العدائية | يمكن تجاوزه بسهولة | غالباً يتعطل أو يصنف خطأً |
| **الأداء** | 150–300 ميجابايت/ثانية (نص)، 6–15 ميجابايت/ثانية (PE) | متغير للغاية | بطيء للغاية |
| **صديق لـ CI/CD** | نعم — آمن، حتمي، سريع | جزئي | لا — غير آمن لخطوط الأنابيب |
| **استقرار المخطط** | مضمون | نادر | لا يوجد |
**باختصار:** تم بناء IOCX لـ *الواقع العدائي الحقيقي*، وليس للمدخلات المثالية.
---
# حالات الاستخدام
### CI/CD و DevSecOps
- فحص الثنائيات قبل الإصدار
- اكتشاف عناوين URL أو IPs أو أسرار عرضية في البناءات
- فرض بوابات أمنية بمخاطر تنفيذ صفرية
### SOC والاستجابة للحوادث
- استخراج المؤشرات من التنبيهات أو نص الحافظة لدى المحلل
- فحص عينات البرمجيات الخبيثة بأمان دون تنفيذ
- تطبيع مؤشرات الاختراق إلى JSON منظم
### استخبارات التهديدات
- معالجة التغذيات على نطاق واسع
- تحليل التقارير غير المنظمة
- بناء خطوط أنابيب الإثراء على مخرجات حتمية
### الأتمتة والبرمجة النصية
- تمرير السجلات أو القطع الأثرية عبر IOCX
- استخدام واجهة Python API لـ ETL أو سير العمل الدفعي
- التوسيع بكاشفات مخصصة
---
# ملفات الأداء
### **1. استخراج مؤشرات الاختراق الخام (نص، سجلات، مخازن مؤقتة)**
**150–300 ميجابايت/ثانية** إنتاجية مستدامة
مسار سريع — لا تحليل PE.
| الكاشف | زمن 1 ميجابايت | الإنتاجية |
|-----------|-----------|------------|
| Crypto | 0.0037 ث | ~270 ميجابايت/ثانية |
| Filepaths | 0.0041 ث | ~250 ميجابايت/ثانية |
| IP | 0.0065 ث | ~156 ميجابايت/ثانية |
| Domains | 0.0035 ث | ~300 ميجابايت/ثانية |
---
### **2. ملفات PE النموذجية (~39 كيلوبايت)**
- **0.0122 ث** (نموذجي)
- **0.0145 ث** (مع الاستدلالات)
- **6–15 ميجابايت/ثانية** إنتاجية
---
### **3. PE عدائي كثيف (1.5 ميجابايت)**
- **0.192 ث**
- **~7.6 ميجابايت/ثانية** إنتاجية
- يثير شذوذ TLS، والشذوذ الهيكلي، وأنماط مكافحة التنقيح
---
### **4. المحرك الكامل (غير PE)**
- **1 ميجابايت:** 0.038 ث
---
# أبرز ميزات الإصدارات
<details>
<summary><strong>عرض سجل الإصدارات</strong></summary>
<br>
### v0.7.6.2 — مدقق جدول الاستيراد
- **مدقق هيكلي حتمي جديد لجدول الاستيراد** (رموز أسباب `IMPORT_*`).
- يتم الآن تحليل `version_info` وإظهاره في **كل** مستويات التحليل (وليس فقط `-a full`)، عبر إسقاط عام محدود جديد.
- إعادة بناء واجهة سطر الأوامر: مخرجات `--version` ذات علامة تجارية، نص `--help` أوضح، مجموعات وسائط معاد تنظيمها.
- إصلاح انهيار محلل إعادة التموضع يمكن الوصول إليه من أي مدخل، وخطأ إزاحة دليل بيانات PE32+، والعديد من إسقاطات أخطاء التصدير/الموارد الصامتة.
- فحص CI ثابت جديد يمنع علامات أخطاء المحلل من أن تبقى غير مستهلكة بصمت من قبل المدققات.
- مجموعة الاختبارات: 2,136 → 2,802 اختبار.
---
### v0.7.6.1 — مدقق دليل الاستثناءات
- يضيف تحققاً دلالياً عميقاً لدليل استثناءات PE (`.pdata`)؛ 14 رمز سبب جديد؛ 15 مدققاً إجمالاً.
- يصلح عيباً كان يكتم النتائج الهيكلية عبر المحرك.
- أربعة فحوصات إضافية وُجد أنها معطلة في الإنتاج: اثنان لتحديد موضع الدليل، وواحد لتعيين الأقسام، وفحص حدود دليل الموارد.
- **مرئي في المخرجات:** النتائج التي كانت مكتومة أو موسومة خطأً ستظهر الآن.
- الاختبارات: 1620 → 2136. التغطية: 100%.
---
### **v0.7.6 — توسيع المدقق الهيكلي: أدلة التنقيح وإعادة التموضع**
- مدققان هيكليان جديدان لـ PE - إعادة التموضع والتنقيح
- مدققا WIN_CERTIFICATE و tls يستمدان الآن الحقيقة الهيكلية من محللات بنى مخصصة، مستقلة عن pefile
- 12 رمز سبب جديد مع تصنيفات فرعية للسبب محلولة بالأولوية
- تحليل حتمي على مستوى البايت - لا اعتماد على التفسير الكسول لـ pefile
- 1620 اختبار بتغطية 100%
---
### **v0.7.5 — توسيع المدقق الهيكلي**
- أربعة مدققات هيكلية جديدة لـ PE — التصدير، واستيراد التحميل المؤجل، وVS_VERSIONINFO، والتسلسل الهرمي للموارد
- 24 رمز سبب جديد مع تصنيفات فرعية للسبب محلولة بالأولوية
- تحليل حتمي على مستوى البايت — لا اعتماد على التفسير الكسول لـ pefile
- بيانات وصفية ذات صلة أمنية — خصائص DLL، وفك ترميز اسم النظام الفرعي/الآلة، والإنتروبيا لكل مورد
- 1370 اختبار بتغطية 100% — تم التحقق منها من البداية إلى النهاية مقابل `dumpbin` على ثنائيات حقيقية
---
### **v0.7.4.1 — إصلاح عاجل للتوافق مع Windows**
- إزالة اعتماد `python-magic`، الذي تسبب في فشل الاستيراد على أنظمة Windows
- إضافة كاشف نوع ملف بلغة Python خالصة لقابلية نقل كاملة عبر الأنظمة الأساسية
- تحسين منطق اكتشاف PE من خلال فرض تحقق صارم متوافق مع Windows لـ PE.
- لا تغييرات سلوكية على استخراج مؤشرات الاختراق
- إصلاح اتساق `--min-length` مخطط لـ **v0.7.5**
---
### **v0.7.4 — تحليل الأدلة المتقدم**
- تحليل وتحقق كامل لـ **Load Config Directory**
- بيانات وصفية موسعة للترويسة الاختيارية للاستدلالات اللاحقة
- استدلالات جديدة لـ GuardCF والكوكيز والشذوذ
- تحليل PE أسرع
- 99 تركيبة PE في مجموعة الاختبارات؛ 45 تم التحقق منها بالكامل وفق المواصفات
---
### **v0.7.3 — الصحة الهيكلية والاستدلالات الحتمية**
- تقوية كبيرة لجميع مدققات PE الهيكلية
- سلوك حتمي ومستقر للقطات
- رموز أسباب واضحة ومتسقة
- استدلالات أقوى مبنية على الحقيقة الهيكلية
---
### **v0.7.2 — إصلاح التبعيات**
- إضافة اعتماد `idna` المفقود
- لا تغييرات سلوكية أو في المخطط
---
### **v0.7.1 — توسيع الاستدلالات العدائية وتقوية المحلل**
- ستة استدلالات PE جديدة
- مجموعة PE عدائية موسعة
- تقوية مستخرجات النطاقات/URL/التشفير/التجزئة
- مخرجات حتمية تم التحقق منها بالقطات
---
### **v0.7.0 — الاستدلالات الحتمية وأساس الاختبار العدائي**
- استدلالات حتمية
- عينات عدائية من الطبقة 3
- اختبارات عقد اللقطات
- إصلاح انهيار Rich Header
---
### **v0.6.0 — مخطط مخرجات مستقر وبيانات وصفية حتمية**
- مخطط JSON مستقر بالكامل
- بيانات PE وصفية مطبعة
- مستويات تحليل رسمية
---
### **v0.5.0 — مستويات التحليل، تحليل أقسام PE، تلميحات التعتيم**
- نظام مستويات تحليل جديد
- تحليل هيكلي لـ PE
- استدلالات التعتيم
---
### **v0.4.0 — بنية الإضافات**
- محرك قواعد جاهز للإضافات
- تدفق اكتشاف موحد
---
### **v0.3.0 — اكتشاف مؤشرات الاختراق المشفرة**
- اكتشاف محفظة Ethereum و Bitcoin
---
### **v0.2.0 — اكتشاف IP عالي الموثوقية**
- تحسينات كبيرة لـ IPv4/IPv6
</details>
---
# البدء السريع
### التثبيت
```bash
pip install iocx
```
### استخراج مؤشرات الاختراق من ملف
```bash
iocx suspicious.exe
```
### الاستخراج من نص
```bash
echo "Visit http://bad.example.com" | iocx -
```
### تمكين تحليل PE
```bash
iocx suspicious.exe -a
```
### Python API
```python
from iocx.engine import Engine
engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
```
---
# مثال على المخرجات
> ينتج IOCX ملف JSON منظماً وحتمياً يتضمن مؤشرات الاختراق، وبيانات PE الوصفية، وتحليل الأقسام، والاستدلالات، ومؤشرات التعتيم.
>
> المثال أدناه هو مخرجات مختصرة من عينة PE عدائية حقيقية. يوضح شكل وعمق المخطط مع الحفاظ على حجم يمكن إدارته لأغراض التوثيق.
<details>
<summary><strong>عرض مثال مخرجات JSON</strong></summary>
```json
{
"file": "heuristic_rich.full.exe",
"type": "PE",
"iocs": {
"urls": ["http://not-a-real-domain.test/payload"],
"domains": ["example-malware.com"],
"ips": ["192.0.2.123"],
"hashes": [
"abcd1234ef567890abcd1234ef567890",
"1234567890",
"3333333333333333"
],
"filepaths": [
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/crtexe.c",
"/usr/x86_64-w64-mingw32/include",
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/pseudo-reloc.c"
]
},
"metadata": {
"file_type": "PE",
"imports": ["KERNEL32.dll", "msvcrt.dll", "USER32.dll"],
"sections": [
".text", ".data", ".rwx", ".rdata",
"UPX0", ".pdata", ".xdata", ".tls"
],
"resources": [],
"resource_strings": [],
"delayed_imports": [],
"bound_imports": [],
"exports": [],
"signatures": [],
"has_signature": false,
"tls": {
"start_address": 5368758272,
"end_address": 5368758280,
"callbacks": 5368754232
},
"header": {
"entry_point": 5088,
"image_base": 5368709120,
"machine": "AMD64",
"subsystem": "Windows GUI"
},
"optional_header": {
"section_alignment": 4096,
"file_alignment": 512,
"size_of_image": 155648
}
},
"analysis": {
"sections": [
{ "name": ".text", "entropy": 5.92 },
{ "name": ".rwx", "entropy": 0 },
{ "name": "UPX0", "entropy": 0.34 },
{ "name": ".rdata", "entropy": 4.03 }
],
"obfuscation": [
{
"value": "abnormal_section_layout_virtual_only",
"category": "obfuscation_hint",
"metadata": {
"section": ".bss",
"raw_size": 0,
"virtual_size": 384
}
}
],
"extended": [
{
"value": "summary",
"category": "pe_metadata",
"metadata": {
"dll_count": 3,
"import_count": 45,
"resource_count": 0,
"has_tls": true,
"has_signature": false
}
}
],
"heuristics": [
{
"value": "packer_suspected",
"metadata": {
"reason": "packer_section_name",
"section": "UPX0"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "anti_debug_api_import",
"dll": "kernel32.dll",
"function": "CheckRemoteDebuggerPresent"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "timing_api_import",
"dll": "kernel32.dll",
"function": "GetTickCount"
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "section_overlaps_headers",
"section": ".bss",
"raw_address": 0,
"size_of_headers": 1536
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "data_directory_overlap",
"directory_a": "IMAGE_DIRECTORY_ENTRY_IMPORT",
"directory_b": "IMAGE_DIRECTORY_ENTRY_IAT"
}
}
]
}
}
```
</details>
---
# البنية المعمارية
```
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
├── detectors/
├── parsers/
├── plugins/
├── cli/
└── analysis/
```
---
# منظومة الإضافات وقابلية التوسع
تم تصميم IOCX ليكون قابلاً للتوسع بأمان وقابلية للتنبؤ.
الإضافات هي **مواطنون من الدرجة الأولى**، يتم التحقق منها بنفس اختبارات اللقطات الحتمية مثل المحرك الأساسي.
يمكنك بناء:
- كاشفات مؤشرات اختراق مخصصة
- قواعد تعبيرات نمطية مخصصة
- إضافات مدركة للثنائيات
- استدلالات داخلية
- مستخرجات خاصة بخط الأنابيب
راجع:
- `docs/specs/overlap-suppression.md`
- `docs/specs/plugin-authoring-guidelines.md`
---
# نظرة عامة على المنظومة
IOCX أكثر من مجرد ثنائي واحد — إنه منظومة معيارية:
- **المحرك الأساسي** — استخراج حتمي لمؤشرات الاختراق + تحليل PE
- **نظام الإضافات** — كاشفات ووحدات تحليل مخصصة
- **المجموعة العدائية** — ملفات PE مشوهة، وسلاسل عدائية، وعينات fuzz
- **إطار اختبار اللقطات** — يضمن مخرجات حتمية
- **معايير الأداء** — مفروضة في CI
- **مجموعة التوثيق** — المواصفات والعقود وأدلة الإضافات
---
# من يستخدم IOCX؟
يُستخدم IOCX عبر:
- فرق DFIR
- خطوط أنابيب أتمتة SOC
- بوابات أمن CI/CD
- منصات استخبارات التهديدات
- مختبرات أبحاث البرمجيات الخبيثة
- فرق الهندسة الأمنية
في أي مكان تحتاج فيه المؤشرات إلى الاستخراج **بأمان**، و**بشكل حتمي**، و**على نطاق واسع**، فإن IOCX مناسب.
---
# الاختبار الآمن (لا حاجة لبرمجيات خبيثة)
جميع عينات الاختبار:
- اصطناعية
- حميدة
- آمنة علنياً (EICAR، GTUBE)
- مصممة لتجنب التعامل العرضي مع البرمجيات الخبيثة
---
# ضمانات الأداء
يفرض IOCX عتبات أداء صارمة في CI لضمان:
- لا توقف في التراجع بالتعبيرات النمطية
- لا تباطؤ مرضي
- أداء مستقر عبر الإصدارات
راجع:
- `docs/performance.md`
---
# هوية المشروع والتسمية
يشير اسم **IOCX** حصرياً إلى المحرك الرسمي المنشور على:
- PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/)
- GitHub: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx)
### غير مسموح
- المستودعات المسماة `iocx`
- الأدوات المسماة "iocx" غير التابعة لهذا المشروع
- الإيحاء بالانتماء دون إذن
### مسموح
- `iocx-<plugin>`
- `iocx-extension-<name>`
- `iocx-detector-<feature>`
---
# مستودعات IOCX الرسمية
- المحرك الأساسي: [https://github.com/iocx-dev/iocx](https://github.com/iocx-dev/iocx)
- المستودع الفوقي للإضافات: [https://github.com/iocx-dev/iocx-plugins](https://github.com/iocx-dev/iocx-plugins)
- التوثيق: [https://github.com/iocx-dev/iocx/tree/main/docs/specs](https://github.com/iocx-dev/iocx/tree/main/docs/specs)
- حزمة PyPI: [https://pypi.org/project/iocx/](https://pypi.org/project/iocx/)
---
# خارطة الطريق
يركز تطوير IOCX على الاستقرار وقابلية التوسع وتغطية أعمق للتحليل الثابت.
تمثل العناصر أدناه مجالات العمل والاستكشاف الجارية.
- **استدلالات PE موسعة** (سلوك التحميل المؤجل، والشذوذ الهيكلي، وأنماط إعادة التموضع)
- **قواعد كتم انتقائية** لسير عمل OSINT و DFIR واستخبارات التهديدات
- **استخراج بيانات ELF و Mach-O الوصفية**
- **وضع التحليل الدفعي** لسير العمل متعدد القطع الأثرية
- **أوضاع مخرجات بنمط YARA** وخطافات الإثراء
- **تحليل ثابت محايد للثنائيات**
- **منظومة إضافات عبر الأنظمة الأساسية**
- **ارتباطات اللغات** لـ Rust و Go و Node.js
---
# المساهمة
نرحب بـ:
- كاشفات جديدة
- تحسينات المحلل
- تحديثات التوثيق
- عينات عدائية اصطناعية
راجع `CONTRIBUTING.md` للإرشادات.
---
# الأمان
إذا اكتشفت مشكلة أمنية، **لا تفتح مشكلة على GitHub**.
اتبع التعليمات في `SECURITY.md`.
---
# الترخيص
رخصة MPL‑2.0 — راجع `LICENSE`.