
مراقب نظام وواجهة برمجة تطبيقات Windows مستقل بدون برامج تشغيل بلغة Rust
أداة مراقبة أنظمة وواجهات برمجة تطبيقات Windows عالية الأداء وبدون برامج تشغيل، مكتوبة بلغة Rust.
بديل حديث لـ strace و Process Monitor في الوقت الفعلي لنظام Windows. مبني بلغة Rust الأصلية دون الحاجة إلى برامج تشغيل kernel، ويتميز بواجهة مستخدم طرفية (TUI) في الوقت الفعلي وبث غير مخزّن مؤقتًا للتشخيصات بدون واجهة رسومية.
powershell -ExecutionPolicy Bypass -File .\packaging\install.ps1
يقوم بتثبيت wstrace.exe في $HOME\.local\bin ويسجّل الدليل في متغير البيئة PATH الخاص بالمستخدم.
winget install gilnett.wstrace
scoop install packaging/scoop/wstrace.json
cargo install --path .
قم بالترجمة مباشرة باستخدام سلسلة أدوات Rust:
cargo build --release
يقع الملف التنفيذي المستقل الناتج في target\release\wstrace.exe.
تأكد من إمكانية الوصول إلى wstrace في الصدفة الحالية:
wstrace --version
يشغّل التطبيق المستهدف مع جدول أحداث في الوقت الفعلي:
wstrace run <executable_path> [-- <arguments>...]
| المفتاح | الإجراء | الوصف |
|---|---|---|
Ctrl+C | نسخ المحدد | ينسخ تفاصيل الحدث المميّز إلى حافظة Windows. |
Ctrl+A | نسخ الكل | ينسخ جميع الأحداث المفلترة حاليًا إلى حافظة Windows. |
Ctrl+E / Space | إيقاف / استئناف | يجمّد عرض الأحداث دون إسقاط البيانات الواردة. |
Ctrl+X | مسح المخزن المؤقت | يفرّغ قائمة الأحداث الحالية من مخزن العرض. |
Tab | تدوير الفئات | يفلتر الأحداث: ALL -> FILE -> REG -> NET -> PROC. |
f | الإخفاقات فقط | يقتصر العرض على العمليات الفاشلة (مثل رفض الوصول، غير موجود). |
Up / Down | التنقل | يحدد حدثًا للفحص المتعمق. |
q / Esc | خروج | ينهي جلسة التتبع بشكل نظيف. |
ارتبط بعملية موجودة عبر معرّف العملية (PID) أو اسم الملف التنفيذي دون إعادة تشغيلها:
# Attach by PID
wstrace attach -p <PID>
# Attach by process executable name
wstrace attach -n <process_name.exe>
-C / --children)يتتبع العملية المستهدفة ويراقب بشكل تكراري جميع العمليات الفرعية التي تنشئها:
wstrace -C run <executable_path> [-- <arguments>...]
--include و --exclude)اعزل العمليات ذات الصلة أو اكتم ضجيج نظام التشغيل:
# Include only operations matching a substring
wstrace --include "<substring>" run <executable_path>
# Exclude operations matching a substring
wstrace --exclude "<substring>" run <executable_path>
-m stream)يكتب الأحداث المباشرة مباشرة إلى stdout مع رموز ألوان ANSI للتسجيل أو خطوط أنابيب CI/CD:
wstrace -m stream [-d <seconds>] run <executable_path>
--export-json)يصدّر جميع أحداث الجلسة الملتقطة إلى ملف JSON منسّق عند الإنهاء:
wstrace --export-json <output_file.json> run <executable_path>
--copy / --to-clipboard)ينسخ تلقائيًا جميع أحداث الجلسة الملتقطة مباشرة إلى حافظة Windows عند الخروج:
wstrace --copy run <executable_path>
packaging/install.ps1)ToolHelp32Snapshot، OpenProcess، VirtualQueryEx) و Event Tracing for Windows (ETW).x86_64-pc-windows-msvc (Intel / AMD 64-bit)aarch64-pc-windows-msvc (Qualcomm Snapdragon X / Windows on ARM)صُمّم wstrace لتلبية المتطلبات المؤسسية الصارمة للنشر في بيئات المؤسسات عالية الأمان (الخدمات المصرفية، الدفاع، الرعاية الصحية، والبنية التحتية الحيوية):
wstrace يعمل بنسبة 100% دون اتصال ومستقل تمامًا. لا يحتفظ بأي خوادم بعيدة، ولا يبدأ أي قياس أو تحليلات، ولا ينفذ أي اتصالات شبكية صادرة. أي بيانات حساسة تُلاحظ أثناء التتبع المباشر (رموز API، مسارات الملفات، بيانات الاعتماد، محتويات الذاكرة) تبقى محصورة بشكل صارم في ذاكرة الوصول العشوائي المحلية ولا تغادر محطة العمل أبدًا.
على عكس أدوات التتبع التقليدية التي تثبّت برامج تشغيل kernel .sys تابعة لجهات خارجية—مما يقدم مخاطر انهيار النظام (شاشة الموت الزرقاء / BSOD) وأسطح هجوم أبواب خلفية ring-0—يعمل wstrace بدون أي برامج تشغيل kernel. يعتمد حصريًا على تصحيح أخطاء Win32 غير التدخلي في وضع المستخدم وواجهات مستهلك ETW الأصلية لنواة Windows.
تتبع البيانات محدود بشكل صارم بجلسة مستخدم Windows وحدود التحكم الإلزامي في النزاهة (MIC). لا يمكن لجلسات المستخدم غير المميزة الوصول إلى العمليات ذات النزاهة الأعلى أو فحصها دون رفع صلاحيات المسؤول الصريح، مع الالتزام الصارم بمبدأ أقل صلاحية.
يفخر wstrace بالبناء على نظام Rust البيئي مفتوح المصدر ويشكر المكتبات الأساسية التالية:
للاطلاع على إشعارات التراخيص والشروط الكاملة، راجع THIRD_PARTY_LICENSES.md.
إذا وجدت wstrace مفيدًا لهندسة Windows أو التدقيق الأمني أو تصحيح أداء النظام، يمكنك دعم التطوير عبر GitHub Sponsors أو Ko-fi: