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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tenet — أداة استكشاف التتبعات لمهندسي الهندسة العكسية | Kitploit
أدوات/GitHubGitHub/gaasedelen/tenet
التحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءتحليل الملفات الثنائية
GitHubgaasedelen/tenet

tenet

أداة استكشاف التتبعات لمهندسي الهندسة العكسية

عرض المستودع
1.5k169منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Tenet - أداة استكشاف التتبع لمهندسي الهندسة العكسية

Tenet Trace Explorer

نظرة عامة

Tenet هو إضافة لـ IDA Pro لاستكشاف تتبعات التنفيذ. الهدف من هذه الإضافة هو توفير أدوات تحكم أكثر طبيعية وبشرية للتنقل عبر تتبعات التنفيذ مقابل ثنائي معين. أساس هذا العمل ينبع من الرغبة في البحث عن طرق جديدة أو مبتكرة لفحص واستخلاص أنماط التنفيذ المعقدة في البرمجيات.

لمزيد من السياق حول هذا المشروع، يرجى قراءة منشور المدونة حول إصداره الأولي.

شكر خاص لـ QIRA / geohot وآخرين للإلهام.

الإصدارات

  • v0.2 -- اكتشاف قاعدة الصورة، التصور الخلوي، إعادة هيكلة نقاط التوقف، إصلاح الأخطاء.
  • v0.1 -- إصدار أولي

التثبيت

Tenet هو إضافة Python 3 متعددة المنصات (ويندوز، ماك، لينكس). لا يتطلب أي تبعيات خارجية، مما يجعل الكود محمولاً وسهل التثبيت.

  1. من وحدة تحكم بايثون في المفكك، قم بتشغيل الأمر التالي للعثور على دليل الإضافات:

    • IDA Pro: import idaapi, os; os.path.join(idaapi.get_user_idadir(), "plugins")
  2. انسخ محتويات مجلد /plugins/ من هذا المستودع إلى الدليل المذكور.

  3. أعد تشغيل المفكك.

هذه الإضافة مدعومة فقط لـ IDA 7.5 وما أحدث.

الاستخدام

بعد التثبيت الصحيح، سيكون هناك إدخال قائمة جديد متاح في المفكك. يمكن استخدامه لتحميل تتبعات التنفيذ المجمعة خارجيًا إلى Tenet.

Load Tenet trace

نظرًا لأن هذا هو الإصدار الأولي، فإن Tenet يقبل فقط تتبعات نصية بسيطة قابلة للقراءة البشرية. يرجى الرجوع إلى دليل التتبع في هذا المستودع لمزيد من المعلومات حول تنسيق التتبع والقيود وأدوات التتبع المرجعية.

الاستكشاف ثنائي الاتجاه

أثناء استخدام Tenet، ستقوم الإضافة 'برسم' مسارات للإشارة إلى تدفق التنفيذ للأمام (أزرق) والخلف (أحمر) من موقعك الحالي في تتبع التنفيذ النشط.

Tenet trails

للتنقل خطوة للأمام أو للخلف عبر الزمن، ما عليك سوى التمرير أثناء التمرير فوق الخط الزمني على الجانب الأيمن من المفكك. لتجاوز step over استدعاءات الدوال، اضغط مع الاستمرار على SHIFT أثناء التمرير.

الخط الزمني للتتبع

سيتم إرساء الخط الزمني للتتبع على الجانب الأيمن من المفكك. تُستخدم هذه الأداة لتصور أنواع مختلفة من الأحداث على طول الخط الزمني للتتبع وأداء التنقل الأساسي كما هو موضح أعلاه.

Zooming in on the trace timeline

من خلال النقر والسحب عبر الخط الزمني، يمكن التكبير على قسم معين من تتبع التنفيذ. يمكن تكرار هذا الإجراء أي عدد من المرات للوصول إلى مستوى التفاصيل المطلوب.

نقاط توقف التنفيذ

النقر المزدوج على مؤشر التعليمات في نافذة السجلات سوف يبرزه باللون الأحمر، مما يكشف جميع المواقع التي تم فيها تنفيذ التعليمات عبر الخط الزمني للتتبع.

Placing a breakpoint on the current instruction

للقفز بين عمليات التنفيذ، قم بالتمرير لأعلى أو لأسفل أثناء التمرير فوق مؤشر التعليمات المظلل.

بالإضافة إلى ذلك، يمكنك النقر بزر الماوس الأيمن في قائمة التفكيك واختيار أحد إدخالات القائمة المستندة إلى التنقل للبحث بسرعة عن تنفيذ تعليمات معينة.

Seeking to the first execution of an instruction

يمكن أيضًا استخدام مفتاح الاختصار الأصلي F2 في IDA لتعيين نقاط توقف على تعليمات عشوائية.

نقاط توقف الذاكرة

من خلال النقر المزدوج على بايت في أي من عروض المكدس أو الذاكرة، سترى فورًا جميع القراءات/الكتابات إلى هذا العنوان مصورة عبر الخط الزمني للتتبع. يشير اللون الأصفر إلى قراءة من الذاكرة، ويشير اللون الأزرق إلى كتابة إلى الذاكرة.

Exploring memory accesses using memory breakpoints

يمكن التنقل بين نقاط توقف الذاكرة باستخدام نفس التقنية الموصوفة لنقاط توقف التنفيذ. انقر نقرًا مزدوجًا على بايت، وقم بالتمرير أثناء التمرير فوق الـ بايت المحدد للبحث في التتبع حول كل وصول إليه.

النقر بزر الماوس الأيمن على بايت مهم سيعطيك خيارات للبحث بين قراءة الذاكرة / كتابتها / الوصول إليها إذا كان لديك إجراء تنقل محدد في ذهنك.

Memory seeking

للتنقل في عرض الذاكرة إلى عنوان عشوائي، انقر على عرض الذاكرة واضغط G لإدخال عنوان أو رمز قاعدة بيانات لتوجيه العرض إليه.

نقاط توقف المنطقة

من الممكن تعيين نقطة توقف ذاكرة عبر منطقة من الذاكرة عن طريق تمييز كتلة من الذاكرة، والنقر المزدوج عليها لتعيين نقطة توقف وصول.

Memory region access breakpoints

كما هو الحال مع نقاط توقف الذاكرة العادية، يمكن استخدام التمرير فوق المنطقة والتمرير للتنقل بين الوصولات التي تم إجراؤها إلى المنطقة المحددة من الذاكرة.

البحث في السجلات

في الهندسة العكسية، من الشائع جدًا مواجهة مواقف تسأل فيها نفسك "أي تعليمات قامت بتعيين هذا السجل إلى قيمته الحالية؟"

باستخدام Tenet، يمكنك البحث للخلف عن تلك التعليمات بنقرة واحدة.

Seeking to the previous register write

البحث للخلف هو بالتأكيد الاتجاه الأكثر شيوعًا للتنقل عبر تغييرات السجلات... ولكن من أجل المرونة، يمكنك أيضًا البحث للأمام عن تعيين السجل التالي باستخدام السهم الأزرق على يمين السجل.

واجهة الطابع الزمني

يتم توفير 'واجهة' بسيطة للتنقل إلى طوابق زمنية محددة في التتبع. لصق (أو كتابة...) طابع زمني في الواجهة مع أو بدون فواصل سيكون كافيًا.

Seeking around the trace using the timestamp shell

باستخدام علامة تعجب، يمكنك أيضًا البحث عن 'نسبة مئوية' محددة في التتبع. إدخال !100 سيبحث عن التعليمات الأخيرة في التتبع، بينما !50 سيبحث تقريبًا في منتصف التتبع. !last سيبحث عن آخر تعليمات قابلة للتصفح يمكن عرضها في المفكك.

السمات

يأتي Tenet مع سمة افتراضيتين - سمة 'فاتحة' وأخرى 'داكنة'. اعتمادًا على الألوان المستخدمة حاليًا من قبل المفكك الخاص بك، سيحاول Tenet اختيار السمة التي تبدو الأكثر ملاءمة.

Tenet Themes

يتم تخزين ملفات السمات كـ JSON بسيطة على القرص وهي قابلة للتخصيص بشكل كبير. إذا لم تكن راضيًا عن السمات أو الألوان الافتراضية، يمكنك إنشاء سماتك الخاصة وإسقاطها ببساطة في دليل سمات المستخدم.

سيتذكر Tenet تفضيلات السمة الخاصة بك للأحمال والاستخدامات المستقبلية.

الأسئلة الشائعة

س: كيف يمكنني تسجيل تتبع تنفيذ باستخدام Tenet؟

  • ج: Tenet هو قارئ تتبع، وليس مسجل تتبع. سيتعين عليك استخدام أطر عمل التجهيز الثنائي الديناميكي (أو تقنيات أخرى ذات صلة) لتوليد تتبع تنفيذ متوافق. يرجى الرجوع إلى دليل التتبع لمزيد من المعلومات حول أدوات التتبع الحالية، أو كيفية تنفيذ أداتك الخاصة.

س: ما هي بنى التتبع التي يدعمها Tenet لتحميلها؟

  • ج: فقط x86 و AMD64، لكن قاعدة الكود مستقلة تمامًا عن البنية تقريبًا.

س: ما هو حجم ملف التتبع الذي يمكن لـ Tenet تحميله / التنقل فيه؟

  • ج: قارئ التتبع في Tenet هو بايثون نقي، وقد تم كتابته كمنتج أدنى قابل للاستخدام (MVP). لا يوجد ضمان بأن التتبعات التي تتجاوز 10 ملايين تعليمة ستكون معقولة للتنقل حتى يتم استبدالها بواجهة خلفية أصلية.

س: لقد قمت بتحميل تتبع تنفيذ، والآن يوجد ملف '.tt'. ما هو؟

  • ج: عندما يقوم Tenet بتحميل تتبع نصي معين، فإنه سيقوم بتحليله وفهرسته وضغطه إلى تنسيق أكثر أداءً. في الأحمال اللاحقة، سيحاول Tenet تحميل ملف '.tt' الذي يجب أن يتم تحميله في جزء من الوقت الذي يستغرقه تحميل التتبع النصي الأصلي.

س: تعطلت الإضافة / أظهرت خطأ / تعرض معلومات تتبع خاطئة، ماذا أفعل؟

  • ج: إذا واجهت مشكلة أو عدم دقة يمكن إعادة إنتاجها، يرجى تقديم مشكلة ضد هذا المستودع وتحميل عينة تتبع + ملف قابل للتنفيذ.

س: الذاكرة في التتبع الخاص بي تتغير، ولكن لا توجد كتابات إلى المنطقة. هل هذا خطأ!؟

  • ج: قد لا يكون ملف السجل الخاص بك قد التقط جميع كتابات الذاكرة. على سبيل المثال، لا تحصل أدوات DBI في وضع المستخدم عمومًا على استدعاء إرجاعي للذاكرة للكتابات الخارجية إلى ذاكرة العملية. هذا شائع جدًا عند القراءة من ملف، أو من مأخذ توصيل - حيث أن النواة هي التي تكتب الذاكرة في المخزن المؤقت المخصص لوضع المستخدم، مما يجعل الحدث غير مرئي للأدوات التقليدية.
    • Microsoft TTD يظهر عمومًا نفس السلوك، من الصعب حله بدون نمذجة استدعاءات النظام.

س: هل سيتم نقل هذا إلى Binary Ninja / Ghidra / ...؟

  • ج: ربما، ولكن ليس في أي وقت قريب (إلا إذا كان هناك حافز كبير). كمشروع موجه للبحث، الدافع الرئيسي هو تطوير استراتيجيات جديدة لتنظيم واستكشاف تنفيذ البرنامج - وليس نقلها.

س: مؤسستي ترغب في دعم هذا المشروع، كيف يمكننا المساعدة؟

  • ج: بدون تمويل، الوقت الذي يمكنني تخصيصه لهذا المشروع محدود. إذا كانت مؤسستك متحمسة للأفكار المطروحة هنا وقادرة على توفير رأس مال لرعاية البحث والتطوير المخصص، يرجى الاتصال بنا.

العمل المستقبلي

إذا سمح الوقت والدافع والتمويل، فقد يشمل العمل المستقبلي:

  • تصفية / تجميع استدعاءات المكتبات من التتبعات
  • تحليل المؤشرات (مثل التعليقات التوضيحية) لعروض السجلات / المكدس
  • تطبيقات أصلية لـ TraceFile و TraceReader (مثل تتبعات أكبر وأسرع)
  • عرض تاريخ التنقل + الإشارات المرجعية (ربما 2 في 1؟)
  • معلومات تتبع أكثر ثراءً، فهرسة أكثر عدوانية للأحداث ذات الصلة (مثل استدعاءات الدوال)
  • رسم خرائط التتبع، تحسين تلخيص وتمثيل جغرافية التتبع
  • جعل اختيار/كشف 'بنية وحدة المعالجة المركزية' أقل تشفيرًا صلبًا
  • المزيد من جسور التتبع الجاهزة، DynamoRIO، TTD، RR، QEMU، Bochs، ...
  • دعم لعروض Hex-Rays / المُفككة (بجانب مزامنة العرض الأساسية)
  • سير عمل محسن للتحميل التلقائي أو التكرار على التتبعات
  • تحليل تفاضلي، 'مقارنة التتبع' عالية المستوى
  • تنقل أفضل وتفصيل للخيوط والكوانتا
  • دعم أفضل للتنقل في تتبعات 'متعددة الوحدات' (مثل تتبعات النظام الكاملة)
  • دعم Binary Ninja
  • ...؟

أرحب بالمساهمات الخارجية والمشكلات وطلبات الميزات. يرجى تقديم أي طلبات سحب إلى فرع develop من هذا المستودع إذا كنت ترغب في أن يتم النظر فيها لإصدار مستقبلي.

المؤلفون

  • Markus Gaasedelen (@gaasedelen)
تنزيل الأداة