في روسيا ، تم حل هذه المشكلة باستخدام برنامج متصفح الفحص الآمن (SEB) مفتوح المصدر . يبدو الآن أنه لن يكون بمقدور طالب الهدية الترويجية الغش واحد ، ولكن هل يتعذر الوصول إلى هذه "القلعة" حقًا؟ تعال إلى الخفض ، اليوم سنخبرك ونعرض لك مجموعة من الطرق للغش SEB!
كان عام 2020 ... كان العالم كله في حالة ذعر ، وسعر صرف الروبل كان يتراجع ، وكانت الولايات في وضع الطوارئ ... على الرغم من كل هذا ، تظل الرغبة الرئيسية للطالب العادي كما هي - لاجتياز الجلسة بأقل جهد ووقت للتحضير. يبدو أنه مع الانتقال إلى التعلم عن بعد ، أصبح كل شيء أسهل بالنسبة للطالب - ما عليك سوى تكوين وجه ذكي عند الإجابة على سؤال على كاميرا الويب ، ويمكنك قراءة المواد من مستند مفتوح متوازي على جهاز كمبيوتر. لكنها لم تكن هناك!
نفذت العديد من الجامعات الروسية برنامج متصفح الامتحان الآمن للتحقق من تقدم الطلاب ، مما يمنع تقريبًا جميع محاولات الغش. بالطبع ، لا يمثل هذا عقبة أمام الطلاب ذوي الحيلة - يمكنك البحث في Google عن إجابات الاختبار على جهاز كمبيوتر ثانٍ (أو مطالبة صديق باستخدام google).
ولكن ، نظرًا لأننا نعمل في القلب ، فقد قررنا التحقق من مدى مساعدة SEB حقًا في إجراء الاختبارات وكيفية تجاوز التحكم الحساس برمجيًا (بشرط أن يكون لدى الطالب مهارات الكمبيوتر الأساسية ، لا تشعر بالرعب من الكلمات " Virtual machine "ويعرف كيفية تثبيت المكون الإضافي لمتصفح Mozilla Firefox). جاهز؟ اذهب!
ما هو متصفح الامتحان الآمن (SEB)؟
متصفح الامتحانات الآمنة (SEB) هو برنامج لإجراء الاختبارات والاختبارات وما إلى ذلك. في وضع الاتصال بالإنترنت. يوفر الحماية ضد:
- فتح تطبيقات غريبة (اتصالات الفيديو والصوت) ؛
- البحث الموازي عن المعلومات في متصفح الويب ؛
- تشغيل تطبيق في جهاز افتراضي ؛
- الذهاب إلى مواقع معينة ؛
- حفظ المعلومات في الحافظة قبل الدخول إلى البرنامج.
تتضمن بنية SEB جزأين: تطبيق سطح مكتب ومتصفح. يعمل التطبيق على كمبيوتر الطالب ويمنع جميع التطبيقات الأخرى باستثناء تلك المطلوبة للاختبار. لا يمكن التفاعل عبر الشبكة إلا من خلال متصفح SEB ، بينما يتصل المتصفح بالمنصة التعليمية التي يتم استضافة الاختبار أو الاختبار عليها (مثل Moodle ). يمكن للفاحص السماح باستخدام تطبيقات الطرف الثالث ، مثل Excel أو الآلة الحاسبة ، أثناء الاختبار ، ومن ثم سيتمكن الطالب من تشغيلها. يتم تنفيذ جميع هذه الأذونات والإعدادات الأخرى باستخدام مُكوِّن SEB وتتم كتابتها في ملف تكوين يتم تشغيله لاحقًا بواسطة تطبيق سطح المكتب.
SEB Configurator هو تطبيق بواجهة سهلة الاستخدام:
هنا يمكنك تعيين عنوان URL لمورد الاختبار ، وقائمة التطبيقات والمواقع المسموح بها / المحظورة ، وأذونات تنزيل الملفات من الإنترنت ، والعمل في جهاز افتراضي ، إلخ.
هناك مساحة كبيرة للإبداع والخيال ، أليس كذلك؟) حسنًا ، لنبدأ.
للاختبار ، نحتاج إلى: برنامج SEB ، آلة افتراضية (VmWare ، VirtualBox) ، متصفح Mozilla Firefox ، شيء لتجميع مشروع كبير في C # (استخدم المؤلف Visual Studio Code) ، بعض الموارد التعليمية (على سبيل المثال ، اختبار Moodle ، مهيأ فقط للعمل مع SEB).
إخلاء المسؤولية: ساعدني هذا المقال كثيرًا عند كتابة هذا المقال .
1. تغيير وكيل مستخدم المتصفح
عمليا لا توجد معرفة وأدوات مطلوبة لتنفيذ هذه الطريقة. لنتحقق من كيفية تفاعل اختبار مودل عند إطلاقه من خلال متصفح ويب عادي:
كما ترى من لقطة الشاشة ، لا يسمح SEB بالوصول إلى الاختبار من متصفح عادي.
وفقًا للوثائق ، يستخدم SEB XULRunner ، محرك Gecko لمتصفح Mozilla ، كمتصفح الويب . دعنا نحاول استبدال وكيل المستخدم لمتصفح Mozilla بعامل المستخدم المحدد في مُكوِّن SEB:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0 SEB
قم بتثبيت مكون إضافي لاستبدال وكيل المستخدم ، على سبيل المثال ، User-Agent Switcher ، وإضافة الخيار التالي إليه:
خفة اليد وقليل من الاحتيال - والآن يمكنك المتابعة بأمان إلى الاختبار ، وفي نفس الوقت فتح Google في علامة التبويب التالية! :)
2. تغيير ملف التكوين للجهاز الظاهري
الطريقة السابقة ، بالطبع ، بسيطة للغاية ومباشرة ، ولكن قد ينشأ موقف حيث يقوم الفاحص أيضًا بجمع سجلات الامتحان - ويقوم SEB فقط بتسجيل جميع أحداثه: إيقاف العمليات غير المصرح بها ، ومسح الحافظة وغير ذلك الكثير. لذلك ، نحن بحاجة إلى إيجاد طريقة للغش مع تمكين SEB!
أولاً ، قررنا معرفة ما إذا كان يمكن تمكين SEB في جهاز افتراضي. هنا ، للأسف ، فشلنا - في مثل هذه الظروف ، لا يسمح SEB حتى بإطلاق نفسه. لكنه يدرك بطريقة ما أنه يتم استخدام آلة افتراضية!
كان هناك قلق من أن SEB كانت تستخدم طرقًا لم تكن ممتعة جدًا للطالب ، مثل اكتشاف عمليات وخدمات الجهاز الظاهري (VM) في النظام ، ولكن عند دراسة كود المصدر ، وجد أن التحقق من التشغيل من جهاز افتراضي يحدث في وظيفة IsInsideVM () لملف SEBWindowsClientMain.cs:
private static bool IsInsideVM()
{
using (var searcher = new ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
{
using (var items = searcher.Get())
{
foreach (var item in items)
{
Logger.AddInformation("Win32_ComputerSystem Manufacturer: " + item["Manufacturer"].ToString() + ", Model: " + item["Model"].ToString(), null, null);
string manufacturer = item["Manufacturer"].ToString().ToLower();
string model = item["Model"].ToString().ToLower();
if ((manufacturer == "microsoft corporation" && !model.Contains("surface"))
|| manufacturer.Contains("vmware")
|| manufacturer.Contains("parallels software")
|| manufacturer.Contains("xen")
|| model.Contains("xen"))
|| model.Contains("virtualbox"))
{
return true;
}
}
}
}
return false;
}
نرى أن SEB قادر على اكتشاف الأجهزة الافتراضية من الشركات المصنعة المدرجة في الكود! ولكن ماذا لو قمنا بتغيير تكوين الجهاز الظاهري ، وبالتالي تغيير الشركة المصنعة؟
سيتم التنفيذ قبل الانتهاء من سرد طلبك! افتح ملف تكوين VmWare وأضف السطر التالي:
الآن سيكون طراز الشركة المصنعة للجهاز الظاهري هو نفس طراز الجهاز الرئيسي. نبدأ الجهاز الظاهري ، ونشغل SEB عليه ونحاول الوصول إلى الاختبار - كل شيء يعمل!
3. تجميع الإصدارات الجديدة من SEB
والآن دعنا ننتقل إلى الجزء الممتع - تجميع نسختنا من SEB! كود المصدر متاح هنا . الشيء الأكثر إثارة للاهتمام هو أن ملف تكوين SEB لا يتتبع سلامة تطبيق سطح المكتب (أو أنه يتتبع ذلك حتى نتمكن من تغيير معظم الكود دون أي مشاكل ، هيه هي) ، بينما يتم التحقق من سلامة ملف التكوين الذي أرسله الفاحص بشكل أكثر صرامة.
3.1 يعمل في آلة افتراضية
لقد قمنا بالفعل بتغيير الشركة المصنعة في الخطوة 2 ، ولكن ما مدى روعة إنشاء نسخة من SEB تعمل في أي جهاز افتراضي ، أليس كذلك؟ بالإضافة إلى ذلك ، من السهل القيام بذلك (بصرف النظر عن الرقص مع الدف عند محاولة تجميع مشروع لأول مرة - وكل ذلك بسبب اختلاف منصات .NET).
لذلك ، تحتاج فقط إلى التعليق على السطر باستخدام VM المطلوب في الكود أعلاه:
في هذه الحالة ، قمنا بتجميع البرنامج بحيث لا يتفاعل على الإطلاق عند تشغيله في الجهاز الظاهري VirtualBox. ولكن هناك ملاحظة مهمة واحدة: إذا قرر القراء استخدام هذه الطريقة ، فمن الضروري إزالة / تغيير تسجيل الأحداث! سيبدأ الجهاز الظاهري بدون مشاكل ، لكن التشغيل عبر VirtualBox سينعكس بالتأكيد في السجلات.
3.2 مسح الحافظة
عند تشغيل SEB ، فإنه يمسح الحافظة تلقائيًا. وبالتالي ، فإن كل شيء نسخه الطالب قبل إطلاق SEB لن يدخل في SEB. حسنًا ، التحدي مقبول!
هناك طريقتان للذهاب هنا:
- حفر في ملف SEBClipboard.cs وإزالة تسجيل الخطأ أو تغيير طفيف في خوارزمية مسح الحافظة
- التعليق خارج السطر في ملف SEBWindowsClientMain.cs:
// Clean clipboard //SEBClipboard.CleanClipboard(); Logger.AddInformation("Clipboard cleaned.", null, null);
في هذه الحالة ، من الأفضل ترك التسجيل اللاحق - حتى لا يفهم الفاحص أنك أحضرت معك في SEB شيء ما - ما - لا يمكن - استخدامه - أثناء الاختبار :)
باستخدام أي من هذه الطرق ، يمكنك الحصول على النتيجة المرجوة:
وبالتالي ، يمكنك إحضار أي نص أو صورة معك إلى SEB - في كلمة واحدة ، ورقة الغش التي يمكن وضعها في الحافظة.
3.3 مساعدة من صديق أو إزالة الحظر المفروض على Discord
تبدو SEB وكأنها امرأة مزاجية للغاية - مع Skype و Discord وما إلى ذلك. لن يتم تشغيله ، لكنه سيضعك أمام خيار: إما أنا أو هم.
حسنًا ، دعنا نحاول تقليل درجة التوتر في مثل هذه الحالة.
هناك مساحة لرحلة الخيال ، ولكن بشكل عام ، يكفي التعليق على السطور المناسبة في معناها مثل "processToClose.Kill ()؛" في ملف SEBNotAllowedProcessController.cs.
ننصحك أيضًا بالنظر في السطور "SetForegroundWindow (windowHandle)؛"، "BringWindowToTop (windowHandle)؛" وخدمة WatchDog. البناء الكفء للتطبيق ومنطق التسجيل هو مفتاح النجاح!
وفي غضون ذلك ، قمنا بتشغيل Discord مع SEB:
ماذا يمكن أن يحاول المتحمسون أيضًا؟
هناك خيارات كافية متبقية ، تكفي لمدة 1000 ليلة وليلة بلا نوم على الكمبيوتر. على سبيل المثال ، يمكنك إعادة ترجمة SEB بحيث لا يتم تشغيله أعلى جميع النوافذ ويمكن تصغيره مثل أي تطبيق عادي.
يمكنك أيضًا محاولة تشغيل SEB على أنظمة تشغيل أخرى (مذهل ، ولكنه حقيقي: يدعي شهود العيان أن تهيئة الجامعة القياسية لـ SEB على OS X لا يمكنها حتى إيقاف الاتصال الصوتي عبر Discord!).
لذلك ، هناك طرق عديدة رائعة لتجميع SEB بوظائف منخفضة ، كل شيء هنا يعتمد فقط على خيال الطلاب المبدعين والعمل الدؤوب!
لننهي المقال بالحكمة