اختراق مُعالِج الاستثناءات: قصة DirectX و Flash وتعديل التعليمات البرمجية
2025-05-21
واجه فريقٌ مشكلةً محبطةً عند استخدام `SetUnhandledExceptionFilter` للتعامل مع الاستثناءات غير المُعالَجة: حيث قام كل من Direct3D و Flash بتثبيت مُرشِّحات الاستثناءات الخاصة بهما، مما جعل حل الفريق غير فعال. ولحل هذه المشكلة، استخدموا استراتيجيةً جريئةً: تمثلت في تعطيل دالة `SetUnhandledExceptionFilter` مباشرةً عن طريق تعديل التعليمات البرمجية لضمان أن يكون مُعالِج الاستثناءات الخاص بهم هو المُعطى الأولوية. وتُفصِّل المقالة عملية تعديل التعليمات البرمجية، بما في ذلك الحصول على عنوان الدالة، والتحقق من التعليمات الأولية، واستخدام واجهات برمجة التطبيقات `VirtualProtect` و `FlushInstructionCache` لاستبدال التعليمات البرمجية. وقد استعاد حلُّهم وظيفة الإبلاغ عن الاستثناءات.
اقرأ المزيد
التطوير
تعديل التعليمات البرمجية