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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
EhTrace — ATrace هي أداة لتتبع تنفيذ البرامج الثنائية على Windows. | Kitploit
أدوات/GitHubGitHub/k2/ehtrace
التحليل الديناميكي (عزل)تحليل الكودالاستغلالالهندسة العكسيةمصممي الأخطاءالاختبار العشوائيتحليل الملفات الثنائية
GitHubk2/ehtrace

EhTrace

ATrace هي أداة لتتبع تنفيذ البرامج الثنائية على Windows.

عرض المستودع
24350منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

EhTrace

LOGO

EhTrace (تُنطق "ATrace") هو إطار عمل عالي الأداء لتتبع وتحليل الثنائيات (binary tracing) وأدوات القياس (instrumentation) على نظام Windows. يُمكّن من التحليل العميق لوقت التشغيل لملفات ويندوز القابلة للتنفيذ دون الحاجة إلى الكود المصدري أو تعديل الثنائيات أو التصحيح التقليدي.

نظرة عامة

يستفيد EhTrace من معالجة الاستثناءات الموجهة في Windows (Vectored Exception Handling - VEH) وتقنيات التنقل بالكتل (block-stepping) لتوفير تتبع شامل للتنفيذ بأقل قدر من التحميل الزائد. على عكس أدوات التصحيح أو القياس التقليدية، يعمل EhTrace بالكامل داخل العملية (in-process) ولا يتطلب أي تصحيحات على الثنائيات المستهدفة.

الميزات الرئيسية

  • تعديل ثنائي صفري: تتبع التنفيذ دون تغيير الثنائي المستهدف
  • أداء عالٍ: التنقل بالكتل بدلاً من التنقل الفردي يحقق حوالي 43 مليون حدث في الثانية
  • تغطية كاملة للكود: اكتشاف وتتبع تلقائي للكتل الأساسية
  • مراقبة حالة المسجلات: التقاط وتحليل حالات المسجلات أثناء التنفيذ
  • بدون وضع التصحيح: يعمل دون تفعيل قدرات التصحيح/التتبع الخاصة بـ CPU (MSR)
  • تشغيل داخل العملية: أقل زمن تبديل سياق مقارنةً بالمصححات التقليدية
  • أوضاع قياس متعددة: دعم لسيناريوهات تتبع وتحليل متنوعة

القدرات الأساسية

  • تحليل تدفق التنفيذ: تتبع مسارات تنفيذ البرنامج والتحكم في التدفق
  • تحديد تغطية الكود: إنشاء تقارير تغطية كود شاملة
  • الدفاع ضد هجمات RoP: كشف ومنع هجمات البرمجة الموجهة بالعودة (ROP) من خلال موازنة call/ret
  • الإيداع الآمن للمفاتيح (Key Escrow): اعتراض المفاتيح التشفيرية وقدرات الإيداع الآمن
  • التكامل مع اختبارات الاختراق (Fuzzing): أدوات قياس متوافقة مع AFL (AWinAFL)
  • تحليل الرموز (Symbol Resolution): تحميل وحل الرموز تلقائياً عبر DIA2

البنية

root@kitploit:~
flowchart TB
    subgraph Target["🎯 Target Process"]
        direction TB
        APP[Application Code]
        VEH[Vectored Exception Handler]
        style APP fill:#e1f5ff,stroke:#01579b,stroke-width:3px,color:#000
        style VEH fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#000
    end
    
    subgraph EhTrace["⚡ EhTrace Engine"]
        direction TB
        BLOCK[Block Stepper]
        DISASM[Capstone Disassembler]
        FIGHTERS[BlockFighters]
        CTX[Context Manager]
        style BLOCK fill:#f3e5f5,stroke:#4a148c,stroke-width:3px,color:#000
        style DISASM fill:#e8f5e9,stroke:#1b5e20,stroke-width:3px,color:#000
        style FIGHTERS fill:#ffebee,stroke:#b71c1c,stroke-width:3px,color:#000
        style CTX fill:#e0f2f1,stroke:#004d40,stroke-width:3px,color:#000
    end
    
    subgraph Output["📊 Analysis Output"]
        direction TB
        SHMEM[Shared Memory Log]
        GRAPHS[Visual Graphs]
        REPORTS[Coverage Reports]
        style SHMEM fill:#fce4ec,stroke:#880e4f,stroke-width:3px,color:#000
        style GRAPHS fill:#f1f8e9,stroke:#33691e,stroke-width:3px,color:#000
        style REPORTS fill:#fff8e1,stroke:#f57f17,stroke-width:3px,color:#000
    end
    
    APP -->|Exception| VEH
    VEH -->|Single Step| BLOCK
    BLOCK -->|Instruction| DISASM
    DISASM -->|Analysis| FIGHTERS
    FIGHTERS -->|State| CTX
    CTX -->|Events| SHMEM
    SHMEM -->|Data| GRAPHS
    SHMEM -->|Data| REPORTS
    
    style Target fill:#e3f2fd,stroke:#0d47a1,stroke-width:4px
    style EhTrace fill:#f3e5f5,stroke:#6a1b9a,stroke-width:4px
    style Output fill:#e8f5e9,stroke:#2e7d32,stroke-width:4px

مبادئ التشغيل الأساسية

يعمل EhTrace عبر أنبوب خطي متطور:

  1. 🛡️ معالجة الاستثناءات: تسجيل معالج استثناءات موجه (VEH)
  2. 👣 التنقل بالكتل: استخدام استثناءات الخطوة الواحدة عند حدود الكتل الأساسية
  3. 🔍 التفكيك (Disassembly): الاستفادة من Capstone لتحليل التعليمات أثناء التنفيذ
  4. 📝 التسجيل: كتابة أحداث التنفيذ إلى ذاكرة مشتركة للتحليل الخارجي
  5. ⚔️ المقاومة (Fighting): تطبيق "BlockFighters" قابلة للتكوين للمهام الأمنية والتحليلية

يحافظ الإطار على حالة التنفيذ لكل خيط (thread) باستخدام هياكل سياق متخصصة ويوفر خطاطيف (hooks) للقياس القابل للتخصيص.

الأداء

root@kitploit:~
graph LR
    subgraph Traditional["🐌 Traditional Debugger"]
        T1[Single Step]
        T2[Context Switch]
        T3[Kernel Mode]
        T4[~1M events/sec]
        style T1 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
        style T2 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
        style T3 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
        style T4 fill:#ef5350,stroke:#b71c1c,stroke-width:3px,color:#fff
    end
    
    subgraph EhTrace["⚡ EhTrace"]
        E1[Block Step]
        E2[In-Process]
        E3[User Mode]
        E4[~43M events/sec]
        style E1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
        style E2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
        style E3 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
        style E4 fill:#66bb6a,stroke:#1b5e20,stroke-width:3px,color:#fff
    end
    
    T1 --> T2 --> T3 --> T4
    E1 --> E2 --> E3 --> E4
    
    style Traditional fill:#ffebee,stroke:#d32f2f,stroke-width:3px
    style EhTrace fill:#e8f5e9,stroke:#388e3c,stroke-width:3px

يحقق EhTrace أداءً عالياً من خلال عدة تحسينات:

  • 🎯 التنقل بالفروع بدلاً من الخطوة الواحدة: التتبع فقط عند حدود الكتل الأساسية
  • ⚡ التشغيل داخل العملية: لا توجد مفاتيح سياق للمصحح
  • ⏱️ إدارة الحالة الزمنية: يحتفظ VEH بحالة التنفيذ بشكل طبيعي
  • 💾 تسجيل فعال: مخازن ذاكرة مشتركة لتسجيل الأحداث عالي الإنتاجية

📊 معيار أداء (Benchmark): 428,833,152 حدثًا (32 بايت لكل حدث) تم التقاطها في 10 ثوانٍ = ~43 مليون حدث/ثانية

مثال على الإخراج

تتبع تجريبي لـ CSW16 لبرنامج notepad.exe بدون رموز:

Flame graph without symbols

رسم بياني للكتل الأساسية مع تفكيك Capstone:

BB graph with disassembly

تصوّر تغطية الكود:

BB graph coverage

المكونات

root@kitploit:~
graph TD
    subgraph Core["🎯 Core Components"]
        EH[EhTrace.dll<br/>Main Instrumentation]
        AC[Acleanout<br/>Log Dumper]
        AG[Agasm<br/>Graph Generator]
        style EH fill:#e1bee7,stroke:#6a1b9a,stroke-width:3px,color:#000
        style AC fill:#c5cae9,stroke:#3949ab,stroke-width:3px,color:#000
        style AG fill:#b2dfdb,stroke:#00695c,stroke-width:3px,color:#000
    end
    
    subgraph Tools["🔧 Supporting Tools"]
        AL[Aload<br/>DLL Injector]
        AP[Aprep<br/>Test EXE]
        AS[Astrace<br/>Stack Tracer]
        style AL fill:#ffe0b2,stroke:#e65100,stroke-width:3px,color:#000
        style AP fill:#f8bbd0,stroke:#c2185b,stroke-width:3px,color:#000
        style AS fill:#d1c4e9,stroke:#512da8,stroke-width:3px,color:#000
    end
    
    subgraph Fuzzing["🐛 Fuzzing Integration"]
        AWA[AWinAFL<br/>AFL Instrumentation]
        style AWA fill:#ffccbc,stroke:#d84315,stroke-width:3px,color:#000
    end
    
    subgraph Viz["📊 Visualization"]
        WPF[WPFx<br/>Graph Viewer]
        DIA[Dia2Sharp<br/>Symbol Resolver]
        ASF[AStackFolding<br/>Flame Graphs]
        style WPF fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#000
        style DIA fill:#fff9c4,stroke:#f9a825,stroke-width:3px,color:#000
        style ASF fill:#ffecb3,stroke:#ff8f00,stroke-width:3px,color:#000
    end
    
    EH -->|Logs| AC
    AC -->|Data| AG
    AG -->|Graphs| WPF
    AL -->|Inject| EH
    DIA -->|Symbols| AG
    ASF -->|Process| AC
    AWA -->|Variant| EH
    
    style Core fill:#f3e5f5,stroke:#7b1fa2,stroke-width:4px
    style Tools fill:#fff3e0,stroke:#ef6c00,stroke-width:4px
    style Fuzzing fill:#fbe9e7,stroke:#bf360c,stroke-width:4px
    style Viz fill:#e8f5e9,stroke:#388e3c,stroke-width:4px

يتكون نظام EhTrace البيئي من عدة مشاريع متكاملة:

المكونات الأساسية

  • EhTrace: ملف DLL الرئيسي للقياس (يمكن بناؤه أيضًا كـ EXE للاختبار)
  • Acleanout: يُفرّغ سجلات التتبع من الذاكرة المشتركة التي أنشأها EhTrace
  • Agasm: أداة لصق/تفكيك لتوليد الرسوم البيانية مع الرموز وتكامل Capstone

الأدوات المساعدة

  • Aload: أداة حقن DLL
  • Aprep: ملف تنفيذي للاختبار (EhTrace مبني كـ EXE)
  • Astrace: أدوات تتبع المكدس
  • AKeyTest: اختبار إيداع المفاتيح التشفيرية

التكامل مع اختبارات الاختراق

  • AWinAFL: أدوات قياس متوافقة مع AFL لنظام Windows

التصوير المرئي

  • WPFx: تصوير مرئي قائم على WPF باستخدام مكتبة MSAGL للرسوم البيانية
  • Dia2Sharp: غلاف C# لـ DIA2 لمعالجة الرموز
  • TestDump2: تطبيق اختبار لـ Dia2Sharp
  • Amerger: أدوات دمج السجلات
  • AStackFolding: طيّ تتبع المكدس لتوليد رسوم اللهب (flame graphs)

المتطلبات الأساسية

متطلبات البناء

  • Visual Studio 2015 أو أحدث (سلسلة أدوات C++)
  • Windows SDK
  • .NET Framework (لأدوات التصوير المرئي)

تبعيات وقت التشغيل

  • dbghelp.dll: حل الرموز (مضمن في دليل الدعم)
  • symsrv.dll: دعم خادم الرموز (مضمن في دليل الدعم)
  • Capstone: محرك التفكيك (المكتبات في دليل الدعم)
  • MSAGL: تصوير الرسوم البيانية (Microsoft Automatic Graph Layout)

البناء

  1. افتح EhTrace.sln في Visual Studio
  2. اختر تكوين الهدف (Debug/Release) والنظام الأساسي (x86/x64)
  3. قم ببناء الحل

للتعليمات التفصيلية للبناء، راجع BUILDING.md

الاستخدام

التتبع الأساسي

  1. قم ببناء أو الحصول على EhTrace.dll
  2. احقن EhTrace.dll في العملية المستهدفة باستخدام Aload أو أي طريقة حقن تفضلها
  3. قم بتشغيل التطبيق المستهدف
  4. اجمع بيانات التتبع باستخدام Acleanout
  5. صوّر النتائج باستخدام WPFx أو أدوات تحليل مخصصة

سير عمل مثال

root@kitploit:~
# Build EhTrace
msbuild EhTrace.sln /p:Configuration=Release /p:Platform=x64

# Inject into target
Aload.exe target.exe EhTrace.dll

# Collect trace data
Acleanout.exe > trace.log

# Analyze with Agasm
Agasm.exe trace.log output.graph

للحصول على وثائق شاملة حول الاستخدام، راجع USAGE.md

التكوين

يدعم EhTrace التكوين في وقت التشغيل من خلال إطار BlockFighters. يمكن تكوين سلوك التتبع عن طريق تعديل تكوين المقاتل (fighter) في بنائك.

المقاتلون المتاحون:

  • مقاتل RoP: يكتشف سلاسل أدوات ROP (gadget chains)
  • مقاتل إيداع المفاتيح: يعترض العمليات التشفيرية
  • مقاتل AFL: يوفر أدوات قياس لاختبارات الاختراق
  • مقاتلون مخصصون: نفذ منطق التحليل الخاص بك

التطوير

هيكل المشروع

root@kitploit:~
EhTrace/
├── EhTrace/          # ملف DLL الأساسي للقياس
├── prep/             # الأدوات المساعدة والأدوات
├── vis/              # مكونات التصوير المرئي
├── support/          # التبعيات والموارد
├── doc/              # التوثيق
└── afl-fuzz/         # تكامل اختبارات الاختراق AFL

ملفات المصدر الرئيسية

  • EhTrace.cpp: معالج VEH الرئيسي والمنطق الأساسي
  • BlockFighters.cpp: تنفيذ إطار المقاتلين
  • Config.cpp: إدارة التكوين والرموز
  • GlobLog.cpp: التسجيل في الذاكرة المشتركة
  • KeyEscrow.cpp: اعتراض المفاتيح التشفيرية
  • RoP-Defender.cpp: منطق كشف هجمات ROP

الترخيص

هذا المشروع مرخص بموجب رخصة GNU Affero General Public License الإصدار 3.0 - راجع ملف LICENSE للتفاصيل.

حقوق الطبع والنشر (C) 2014-2016 Shane Macaulay

المساهمة

المساهمات مرحب بها! يُرجى التأكد من أن كودك يتبع النمط الحالي ويتضمن الاختبارات المناسبة.

المؤلف

Shane Macaulay ([email protected])

الشكر والتقدير

  • إطار عمل Capstone للتفكيك
  • Microsoft Automatic Graph Layout (MSAGL)
  • إطار عمل AFL لاختبارات الاختراق
  • مجتمع أبحاث الأمن

المراجع

لمزيد من التفاصيل التقنية، راجع:

  • ARCHITECTURE.md - توثيق البنية التقنية
  • doc/ - توثيق وعروض تقديمية إضافية
تنزيل الأداة