العودة إلى التحديثات
New releaseJul 28, 2026

OffsetInspect v3.3.0

مجموعة أدوات PowerShell لتحليل حدود الكشف في AMSI/Defender والفرز الثابت للبرمجيات الخبيثة؛ تربط إزاحات البايت بمشغلات الكشف، بالإضافة إلى تحليل YARA والإنتروبيا والسلاسل النصية وPE/imphash. أداة مصاحبة لـ OffsetScan.

مشاركة

Dread Host Research

Release License PowerShell 5.1 and 7.x Cross-platform core Windows threat providers CI Security policy X (Twitter): @warped_atom

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)؛ وفي الأماكن الأخرى تُسجَّل على أنها فارغة ويستمر كتابة بقية اللقطة.

الفئات