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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
yara-ttd — استخدم قواعد YARA على تتبعات Time Travel Debugging | Kitploit
أدوات/GitHubGitHub/airbus-cert/yara-ttd
التحليل الديناميكي (عزل)تحليل الذاكرة الجنائيالهندسة العكسيةشيل كودتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubairbus-cert/yara-ttd

yara-ttd

استخدم قواعد YARA على تتبعات Time Travel Debugging

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

الأكثر شعبية

عرض الكل →

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

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

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

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

yara-ttd - العدو اللدود لأدوات التعبئة (packers)

استخدم قواعد YARA على آثار Time Travel Debugging

  1. العرض التجريبي
  2. الدوافع
  3. التثبيت
  4. الاستخدام
  5. الميزات القادمة

العرض التجريبي

ملف ثنائي مُعبّأ بواسطة UPX

ملف ثنائي بسيط يقوم بتشغيل calc.exe، مُعبّأ بواسطة UPX. يتمكن yara-ttd من العثور على سلسلة calc.exe في ذاكرة الوحدة، أثناء إنشاء سلسلة تنفيذ.

عرض توضيحي لـ UPX

شيلكود مبهم بسيط يشغّل calc.exe

الملف الثنائي المختبر يفك تشفير شيلكود، ويشغّله في سلسلة تنفيذ جديدة. يتمكن yara-ttd من العثور على سلسلة calc.exe في الكومة (heap) عند ربط دالة ntdll!NtCreateThreadEx.

عرض توضيحي للشيلكود

الدوافع

YARA

YARA أداة قوية لمطابقة الأنماط في الملفات الثنائية.

YARA هي أداة تهدف إلى مساعدة باحثي البرمجيات الخبيثة (وليس فقط) في تحديد وتصنيف عينات البرمجيات الخبيثة. باستخدام YARA يمكنك إنشاء أوصاف لعائلات البرمجيات الخبيثة (أو أي شيء تريد وصفه) بناءً على أنماط نصية أو ثنائية.

-- توثيق YARA

بفضل YARA، يمكننا توفير الكثير من الوقت عن طريق تصنيف عينات البرمجيات الخبيثة تلقائيًا في خط معالجة قبل تحليلها.

أدوات التعبئة (Packers)

لسوء الحظ، فإن معظم عينات البرمجيات الخبيثة محمية بأنواع مختلفة من أدوات التعبئة (packers). تتكون مخططات أدوات التعبئة الكلاسيكية في وقت التشغيل مثل UPX أو VMProtect من استخراج ذاتي وتشغيل كود مبهم وأحيانًا مشفر. لذلك، لا يمكن لـ YARA التعامل مع الملفات الثنائية المعبأة لأنها لن تجد أي تطابقات في الكود المعبأ.

Time Travel Debugging

Time Travel Debugging - أو TTD - هي ميزة في مصحح أخطاء ويندوز الأصلي WinDbg.

Time Travel Debugging هي أداة تتيح لك التقاط أثر لعمليتك أثناء تنفيذها ثم إعادة تشغيله لاحقًا للأمام والخلف. يمكن أن يساعدك Time Travel Debugging (TTD) في تصحيح الأخطاء بسهولة أكبر من خلال السماح لك بـ"إرجاع" جلسة المصحح، بدلاً من الاضطرار إلى إعادة إنتاج المشكلة حتى تجد الخطأ.

-- توثيق مايكروسوفت

بالنسبة لتحليل البرمجيات الخبيثة، تعتبر TTD أداة قوية لأنها تسمح بتسجيل أثر البرمجية الخبيثة داخل بيئة معزولة (sandbox). وبالتالي، يمكننا إعادة التشغيل ومشاركة الملف المسجل بأمان خارج البيئة المعزولة لتحليل البرمجية الخبيثة. أيضًا، TTD ليست مصحح أخطاء، لذا لن يتم اكتشافها بواسطة تقنيات مكافحة التصحيح الكلاسيكية مثل PEB.BeingDebugged. للحصول على تحليل أعمق لـ TTD من منظور أمني، راجع هذا المقال: غوص عميق في نظام TTD البيئي

بالطبع، TTD هي برمجيات احتكارية، ولم يكن هذا العمل ممكنًا لولا ربطات ttd التي طورها commial.

yara-ttd

الفكرة وراء yara-ttd هي استخدام ملفات الأثر المسجلة بواسطة TTD مع yara نفسه لهزيمة أدوات التعبئة (packers).

نظرًا لأن yara لا يمكنه فحص الملف الثنائي المعبأ نفسه، فإن yara-ttd يوفر طريقة لتحليل ملف الأثر الذي يحتوي على جميع معلومات وقت التشغيل، بما في ذلك عملية فك التعبئة (unpacking).

باستخدام yara-ttd، يمكنك تحديد مجموعة من المواضع في ملف الأثر حيث تريد فحص الذاكرة بقواعد yara الخاصة بك. وبالتالي، يمكنك ربط (hook) الملف الثنائي المعبأ في أي مكان تريده باستخدام قواعد yara الخاصة بك!

يوفر yara-ttd عدة استراتيجيات لفحص الذاكرة، مثل عند تحميل الوحدات، أو عند تخصيص ذاكرة افتراضية، والتي تُستخدم غالبًا لتخزين كود البرمجية الخبيثة بعد فك تعبئته.

التثبيت

في الوقت الحالي، يدعم yara-ttd نظام ويندوز فقط، لأنه يحتاج إلى التفاعل مع واجهة برمجة تطبيقات TTD.

أولاً، قم ببناء المشروع:

root@kitploit:~
mkdir build
cd build
cmake ..
cmake --build .

ثم أضف ملفي TTDReplay.dll و TTDReplayCPU.dll في نفس المجلد الذي يحتوي على الملف التنفيذي. ستجد ملفات DLL هذه في %LocalAppData%\Microsoft\WindowsApps\Microsoft.WinDbg_X\TTD

الاستخدام

أولاً تحتاج إلى تسجيل أثر (ملف .run) لبرنامجك. للحصول على مساعدة مفصلة حول كيفية تسجيل أثر TTD، راجع هذا البرنامج التعليمي.

ثم قم ببساطة بتشغيل:

root@kitploit:~
.\yara-ttd path\to\rule path\to\trace\file

أوضاع الذاكرة

هناك ثلاثة أوضاع لفحص الذاكرة:

  • الوضع 0 (الافتراضي): ذاكرة الوحدات المحملة
  • الوضع 1: الذاكرة الافتراضية المخصصة + ذاكرة الوحدات المحملة
  • الوضع 2: الذاكرة الكاملة (قد يكون طويلاً جدًا)

يمكنك تحديد الوضع باستخدام -m:

root@kitploit:~
.\yara-ttd -m 1 path\to\rule path\to\trace\file

مثل واجهة سطر الأوامر الرسمية yara، يمكنك استخدام الخيار -s لطباعة تفاصيل التطابقات، مثل عنوان الذاكرة والقاعدة الفرعية الدقيقة التي تطابقت.

ملاحظات حول وضع الذاكرة الافتراضية المخصصة:

نظرًا لأن TTD لا تخزن بنية الذاكرة، فإن yara-ttd يحسب قبل الفحص بنية عناوين الكومة لكل موضع زمني. سينشئ ملف كاش بامتداد .tmp في نفس مسار ملف الأثر لتخزين بنية الكومة. إذا أردت إعادة تشغيل yara-ttd على أثر وتحميل بنية الكومة من ملف الكاش المُنشأ، يمكنك ببساطة القيام بما يلي:

root@kitploit:~
.\yara-ttd -m 1 --cache=path\to\cache\file path\to\rule path\to\trace\file
ملاحظة حول وضع الذاكرة الكاملة:

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

أوضاع الوقت

المواضع الزمنية الافتراضية التي سيتم فحصها هي:

  • أحداث الاستثناءات
  • أحداث تحميل الوحدات
  • أحداث إنشاء سلاسل التنفيذ

باستخدام الخيارين -t و -f، يمكنك تحديد مواضع أخرى أو استدعاءات دوال لفحصها:

root@kitploit:~
.\yara-ttd -m 1 -t 3C1:A -t 5FF:22 -f ntdll!FreeVirtualMemory -f ntdll!NtCreateThreadEx path\to\rule path\to\trace\file

يتوقع الخيار -t مواضع TTD بالشكل major:minor (وكلاهما بالنظام الست عشري، دون 0x). يتوقع الخيار -f سلسلة نصية بالشكل module_name!function_name.

يمكنك أيضًا إضافة جميع الدوال التي تريد ربطها في ملف:

root@kitploit:~
> cat .\functions.txt
ntdll!FreeVirtualMemory
ntdll!NtCreateThreadEx

> .\yara-ttd -m 1 -F functions.txt path\to\rule path\to\trace\file

فحص ملفات أثر متعددة

إذا كان لديك ملفات متعددة لفحصها باستخدام yara-ttd، يمكنك أيضًا فحص مجلد كامل. سيتجاهل yara-ttd جميع الامتدادات التالية في المجلد:

  • .tmp (ملفات الكاش المنشأة بواسطة yara-ttd)
  • .idx (ملفات الفهرس المنشأة بواسطة ttd)
  • .err (ملفات الأخطاء المنشأة بواسطة ttd)
  • .out (ملفات السجلات المنشأة بواسطة ttd)

في المثال التالي، سيقوم yara-ttd بفحص الملفين trace01.run و trace02.run فقط.

root@kitploit:~
> dir .\traces
trace01.run
trace01.out
trace01.idx
trace02.run
trace01.run.err
trace01.tmp

> .\yara-ttd path\to\rule .\traces

بدلاً من ذلك، يمكنك تحديد جميع الآثار التي تريد فحصها في ملف واستخدام الخيار --scan-list أو -l. سيقوم بفحص الملفات المدرجة، ملف واحد في كل سطر:

root@kitploit:~
> cat .\scan_me.txt
.\traces\trace01.run
.\traces\trace02.run

> .\yara-ttd -l path\to\rule .\scan_me.txt

عند فحص ملفات متعددة، يقوم yara-ttd بتشغيل عمليات الفحص واحدة تلو الأخرى، وليس في وقت واحد مع خيوط المعالجة مثل واجهة سطر أوامر yara الأصلية.

الميزات القادمة

  • مكتبة libyarattd مع روابط بايثون (Python bindings)
  • الربط مع ttddbg و IDA: ميزة تحمّل IDA في نهاية الفحص عند موضع التطابق في الزمن والذاكرة
  • TTD: متابعة العملية الفرعية عند تفرع العملية (fork)
تنزيل الأداة