
OffsetInspect v3.3.0
مجموعة أدوات PowerShell لتحليل حدود الكشف في AMSI/Defender والفرز الثابت للبرمجيات الخبيثة؛ تربط إزاحات البايت بمشغلات الكشف، بالإضافة إلى تحليل YARA والإنتروبيا والسلاسل النصية وPE/imphash. أداة مصاحبة لـ OffsetScan.
OffsetInspect
أداة PowerShell بذاكرة محدودة لفحص إزاحات البايت، وربط المصادر، ومقارنة الثنائيات، وتحليل حدود الكشف الدفاعي.
تجيب OffsetInspect عن سؤال محلل عملي:
ما المحتوى الموجود عند إزاحة البايت هذه، وما سياق المصدر أو الثنائي المحيط به؟
كما توفر سير عمل أصليًا لحدود الكشف مستوحىً من نفس مشكلة المحلل التي يعالجها ThreatCheck، دون تضمين مصدره أو ملفاته الثنائية: فهي تحدد أقرب بادئة محتوى لا يزال AMSI أو Microsoft Defender يكتشفها، وتتحقق من الحدود مرارًا، وتغذي الإزاحة الناتجة مباشرة إلى مفحص السياق. إضافة إلى ذلك النواة، تضيف مجموعة تحليل للفريق الأحمر وفرزًا ثابتًا - اكتشاف متعدد المناطق، ومسحًا لمجموعة الملفات، ومقارنة نتائج الكشف، وربط مشغلات الكشف، وتوثيق الانحراف، وتقارير المشاركة، وتحليل الإنتروبيا، واستخراج السلاسل النصية، وتحليل PE/imphash - وكلها للقراءة فقط، بالإضافة إلى مختبِر متانة التوقيع المخصص للاستخدام المصرّح به والذي يعدّل العينات في الذاكرة فقط، دون تعطيل أو إعادة تكوين حماية نقطة النهاية على الإطلاق.
أداة مصاحبة
للفرز الثابت على نطاق مجموعات الملفات (تحليل PE، والإنتروبيا، والسلاسل النصية، ومؤشرات IOC) دون عبء PowerShell، راجع OffsetScan - ملف ثنائي أصلي بلغة Rust يحمل نفس مخطط إخراج JSON. يستوعب OffsetInspect 3.1.0+ ملفات IOC JSON الصادرة عن OffsetScan مباشرة عبر -IocJsonPath.
أبرز الميزات
- يفتح كل ملف فحص فريد من خلال مقبض قراءة ثابت ويعالج جميع الإزاحات المطلوبة معًا.
- يستخدم تمريرًا متدفقًا بذاكرة محدودة لرسم خريطة الأسطر بدلًا من إعادة قراءة الملف بالكامل لكل إزاحة.
- يقرأ فقط نوافذ البايت المطلوبة لإخراج السداسي العشري والمقارنة.
- يربط إزاحات البايت بترميز UTF-8 وUTF-16 بأسطر المصدر ومواضع الأحرف.
- ينفّذ سياق المصدر السابق والتالي عبر
-ContextLines. - يدعم عقود إخراج: بشري، وكائن، وJSON، وCSV، وملف CSV.
- يدعم خطط ملفات/إزاحات من واحد إلى متعدد، ومن متعدد إلى واحد، ومزدوجة.
- يقارن البايت الهدف بملف ثانٍ دون إعادة تحميل ذلك الملف مرارًا.
- يضيف طبقة مزودين منفذة بشكل مستقل لـ AMSI وMicrosoft Defender مع حالات صريحة للخطأ وانتهاء المهلة والحظر وعدم التحديد.
- يسجّل مسار تدقيق لكل فحص (
ProbeLog/ProbeCount) لكل استدعاء مميز للمزود، ويُبث مباشرة إلى-Verbose، ليكون نصًا جاهزًا للتقرير عن التكلفة الحقيقية للمزود في الفحص. - يكتشف مناطق متعددة قابلة للاكتشاف بشكل مستقل في ملف واحد عبر فحص AMSI داخل الذاكرة (لا يُكتب أي شيء تم اكتشافه على القرص) ويربط كل حدود بالإزاحة المطلقة.
- يمسح مجموعة ملفات في مصفوفة كشف مجمّعة، ويقارن نتائج الكشف بين فحصين، ويصدر تقارير مشاركة Markdown/HTML (يُغذّى اختياريًا بـ JSON محرك OffsetScan الأصلي للوحات IOC على نطاق مجموعات الملفات).
- يربط حد الكشف بالمحتوى الذي أنتجه - قسم PE، والإنتروبيا للمدى حتى الحدود، والسلاسل النصية المنتهية عندها/المتجاوزة لها كمحتوى مرشح للتوقيع.
- يوثّق الكشف على مدار الوقت (تجزئة الملف و إصدار توقيع Defender المحلي) بحيث يمكن عزو تغيّر قابلية الاكتشاف إلى الملف أو إلى تحديث قاعدة التوقيعات أو إلى نتيجة مزود غير حتمية.
- يختبر متانة التوقيع للمشاركات المصرّح بها عن طريق تعديل عينة تم اكتشافها في الذاكرة (الحالة، التسلسل، التعليق، المسافات البيضاء) والإبلاغ عن فئات التحويل التي تفلت من الكشف - دون كتابة أي متغير على القرص.
- يربط الفحص بالقياسات عن بُعد الخاصة ببيئة Windows التي يولّدها (
-CaptureTelemetry): ما إذا تم إطلاق تنبيه Microsoft Defender، وبأي سياق، وما مصادر القياس عن بُعد التي كانت عمياء - مما يطبّق مبدأ "افترض الرؤية، ثم تحقق منها". للقراءة فقط، وبدون صلاحيات المسؤول، وخاص بنظام Windows. - يضيف أدوات فرز ثابت للبرمجيات الخبيثة: إنتروبيا لكل نافذة (المناطق المضغوطة/المشفرة)، واستخراج سلاسل ASCII/UTF-16LE مع إزاحاتها، وتحليل رؤوس PE وأقسامه واستيراداته مع كشف imphash والمنطقة الزائدة (overlay).
- يتحقق من مصدر Authenticode (
Get-OffsetSignature): باستخدام تحقق الثقة الحقيقي للمنصة، يبلّغ ما إذا كان الملف موقّعًا وموثوقًا به بشكل صحيح، ومن وقّعه، وما إذا كان موقّعًا بشكل مضمّن أو عبر كتالوج - إشارة موقّع تكمل imphash وبصمة سلسلة أدوات البناء (الاستيرادات مقابل سلسلة الأدوات مقابل الموقّع). خاص بنظام Windows. - لا يغيّر أبدًا استثناءات Defender أو الحماية في الوقت الفعلي أو إعدادات أمان النظام.
- يُوزَّع كحزمة PowerShell Gallery قائمة بذاتها بدون تبعيات خارجية لوقت التشغيل؛ فحص YARA وClamAV هما الاستثناءان الاختياريان الوحيدان، ويتطلب كل منهما محركه الخارجي الخاص.
الأوامر
| Command | الغرض | المنصة |
|---|---|---|
Invoke-OffsetInspect | تعيين إزاحات البايت إلى سياق المصدر/الثنائي، والسداسي العشري، والمقارنة | متعدد المنصات |
Invoke-OffsetThreatScan | البحث عن حدود الكشف عبر AMSI/Defender لملف واحد | ويندوز |
Invoke-OffsetThreatScanBatch | فحص مجموعة ملفات؛ -Summary يُرجع مصفوفة كشف | ويندوز |
Invoke-OffsetThreatScanRegion | اكتشاف متعدد المناطق عبر فحص AMSI داخل الذاكرة (بدون كتابة على القرص) | ويندوز |
Invoke-OffsetMutationTest | اختبار متانة التوقيع: تعديل عينة تم اكتشافها في الذاكرة، وتحديد التحويلات التي تفلت من الكشف (للاستخدام المصرّح به فقط) | ويندوز |
Compare-OffsetThreatResult | مقارنة نتيجتي فحص (مثلًا عبر تحديثات تعريفات التوقيع) | متعدد المنصات |
Get-OffsetDetectionTrigger | ربط حد الكشف بالمحتوى الأكثر ترجيحًا الذي أثار الكشف | متعدد المنصات |
Add-OffsetDriftEntry | تسجيل لقطة كشف (تجزئة الملف + إصدار توقيع Defender) في سجل | متعدد المنصات² |
Get-OffsetDrift | شرح كيفية تغيّر قابلية اكتشاف الملف: تغيّر الملف مقابل تحديث التوقيع مقابل عدم الحتمية | متعدد المنصات |
Export-OffsetThreatReport | عرض نتائج الفحص في تقرير مشاركة Markdown/HTML | متعدد المنصات |
Invoke-OffsetYaraScan | مطابقة ملف مع قواعد YARA؛ إرجاع الإصابات مع إزاحات البايت | متعدد المنصات¹ |
Invoke-OffsetClamScan | فحص ملف بمحرك ClamAV؛ نتيجة كشف موحّدة | متعدد المنصات¹ |
Get-OffsetEntropy | إنتروبيا شانون لكل نافذة لتحديد المناطق المضغوطة/المشفرة | متعدد المنصات |
Get-OffsetString | استخراج سلاسل ASCII/UTF-16LE مع إزاحات البايت | متعدد المنصات |
Get-OffsetPEInfo | رؤوس PE، والأقسام، والاستيرادات/imphash، وoverlay، والإزاحة→القسم | متعدد المنصات |
Get-OffsetIOC | لوحة مؤشرات موحّدة: التجزئات، والإنتروبيا، وPE/imphash، والسلاسل | متعدد المنصات |
Get-OffsetSignature | توقيع Authenticode: هل الملف موقّع وموثوق به بشكل صحيح، ومن وقّعه، مضمّن أم عبر كتالوج | ويندوز |
¹ هذان الأمران لهما تبعيات خارجية اختيارية: يحتاج Invoke-OffsetYaraScan إلى محرك YARA (winget install VirusTotal.YARA)، ويحتاج Invoke-OffsetClamScan إلى ClamAV مع قواعد بيانات التوقيعات (winget install Cisco.ClamAV، ثم freshclam). كل أمر آخر قائم بذاته. ClamAV هنا كاشف ملف واحد، وليس محرك بحث عن الحدود - clamscan يحمّل قاعدة بياناته الكاملة في كل استدعاء، لذا فإن الانقسام الثنائي يتطلب خدمة clamd.
² Add-OffsetDriftEntry يوثّق على جميع المنصات، لكن حقول إصدار محرك/توقيع Defender تُملأ فقط على ويندوز (عبر Get-MpComputerStatus)؛ وفي الأماكن الأخرى تُسجَّل على أنها فارغة ويستمر كتابة بقية اللقطة.