عامل تصفية DirectShow لا تتصل بتصفية الاتجاه التنازلي في Windows 8 و Windows 7 SP1 مع 2670838 كيلو بايت

الأعراض

يتم استخدام عامل تصفية DirectShow لا يتصل عامل تصفية الاتجاه التنازلي في ويندوز 7 SP1 و Windows 8 بعد تثبيت 2670838 كيلو بايت.  قبل تثبيت 2670838 كيلو بايت لم يحدث هذه المشكلة في حزمة الخدمة SP1 ل Windows 7.
  • عند استدعاء دالة CBasePin.ReceiveConnection القيمة التي تم إرجاعها هي VFW_E_INVALIDMEDIATYPE (0x80040200)

السبب

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

2670838 كيلو بايت لويندوز 7 SP1 تحديث النظام الفرعي DirectShow بنفس التغييرات.

الحل

فيما يلي بعض التوصيات التي يمكن أن تساعد في ضمان التدقيق الأمني الجديد يقوم بتمرير التعليمات البرمجية الخاصة بك:

  • التحقق من بنية AM_MEDIA_TYPE لقيم غير صالحة. يصف هذا الهيكل تنسيق الوسائط عينة.
  • عند استدعاء CMediaType.AllocFormatBuffer على تخصيص ذاكرة لكتلة التنسيق، تأكد من أن يتم تمريرها للحجم المطلوب لكتلة التنسيق الصحيح.

    يرجى ملاحظة: هذا الأسلوب يقوم بتحديث أعضاء البنية AM_MEDIA_TYPE كبفورمات و ببفورمات .
  • التحقق من بنية بيتمابينفوهيدير لقيم غير صالحة
    • تأكد من أن يساوي بيسيزي sizeof(BITMAPINFOHEADER)
    • تحقق من بيسيزيماجي لقيمة غير صالحة (أي > 0x40000000)
    • تحقق من بيكلروسيد لقيمة غير صالحة (أي > 256)

مزيد من المعلومات

خطوات إعادة إنشاء المشكلة باستخدام GraphEdit:

يتوفر GraphEdit في Microsoft Windows برامج تطوير أدوات (SDK) (http://go.microsoft.com/fwlink/p/?linkid=62332).

الخطوة 1- انتقل إلى مجلد سلة المحذوفات من Windows SDK وتشغيل graphedt.exe.

الخطوة 2- من القائمة " رسم "، انقر فوق إدراج عوامل التصفية. يظهر مربع حوار مع قائمة عوامل التصفية في النظام، مرتبة حسب الفئة عامل التصفية.

الخطوة 3- العثور على عامل التصفية الخاص بك ضمن الفئة المناسبة (توجد عادة ضمن فئة عوامل تصفية DirectShow ) وانقر على الزر إدراج عامل تصفية . إذا كان عامل التصفية غير عامل تصفية المصدر ثم تأكد من أن قمت بإضافة عامل تصفية المصدر المطلوب له.

الخطوة 4. إدراج عامل تصفية المتلقين للمعلومات المطلوبة.

الخطوة 5. بعد قيامك بإضافة عوامل التصفية، يمكنك الاتصال عاملي تصفية بسحب الماوس من عامل تصفية واحد إخراج طرف إلى طرف آخر عامل تصفية للإدخال. إذا قبلت الأطراف الاتصال، يرسم GraphEdit سهم توصيلها. جرب هذا لعامل التصفية الخاص بك باستخدام عامل التصفية النهائية. سوف تشاهد-
  • سيتصل طرف الإدخال واﻹخراج pin دون أي خطأ في Windows 7 SP1.
  • GraphEdit سوف تظهر رسالة الإعلام بالخطأ على ويندوز 8 وويندوز 7 SP1 بتثبيت 2670838 كيلو بايت.
المصطلحات المستخدمة في هذه المقالة:

تجاوز سعة المخزن المؤقت:

تجاوز المخزن مؤقت عندما نحاول احتواء المزيد من البيانات في مخزن مؤقت تم تخصيصها. يمكن استخدام في تجاوز سعة المخزن مؤقت لتنفيذ تعليمات برمجية ضارة في نظام.

تجاوزات المخزن المؤقت:

يعود تجاوز سعة المخزن المؤقت A أساسا معاملة غير محددة من المدخلات الخارجية كبيانات جديرة بالثقة. عملية نسخ هذه البيانات، باستخدام عمليات مثل كوبيميموري أو ستركات أو strcpy أو وكسكبي، إنشاء النتائج غير المتوقعة، التي تسمح لتلف النظام.

ارتباطات ذات صلة:

CBasePin.ReceiveConnection method
http://msdn.microsoft.com/en-us/library/windows/desktop/dd368737(v=vs.85).aspx

الفئة كميدياتيبي
http://msdn.microsoft.com/en-us/library/windows/desktop/dd374727(v=vs.85).aspx

طريقة CMediaType.AllocFormatBuffer
http://msdn.microsoft.com/en-us/library/windows/desktop/dd374728(v=vs.85).aspx

بنية AM_MEDIA_TYPE
http://msdn.microsoft.com/en-us/library/windows/desktop/dd373477(v=vs.85).aspx

بنية بيتمابينفوهيدير
http://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx

استخدام GraphEdit
http://msdn.microsoft.com/en-us/library/windows/desktop/dd407274(v=vs.85).aspx

خصائص

رقم الموضوع: 2841589 - آخر مراجعة: 12‏/01‏/2017 - المراجعة: 1

تعليقات