1000 и 1 способ обойти Safe Exam Browser

    Ну ладно, не 1000 и 1 способ, но их довольно много! О чем это мы? О том, что пандемия COVID-19 внесла много изменений в нашу жизнь, в том числе, и в образование — как школьное, так и ВУЗовское. Уроки, лекции и семинары перешли в онлайн-формат, а вопрос, как быть с контролем успеваемости, остался. Как преподавателям убедиться, что сдающий экзамен студент не открыл в соседней вкладке шпаргалки?

    В России эту проблему решили с помощью open-source программы Safe Exam Browser (SEB). Казалось бы, теперь ни один искатель халявы не сможет смухлевать, но так ли уж неприступна эта «крепость»? Заходи под кат, сегодня мы расскажем и покажем кучу способов обмануть SEB!

    Шёл 2020-й год… Весь мир в панике, курс рубля падает, государства переходят в режим ЧС… Несмотря на все это, основное желание среднестатистического студента остается прежним — сдать сессию с наименьшими затратами сил и времени на подготовку. Казалось бы, с переходом на дистанционное обучение для студента все стало проще — нужно всего лишь сделать умное лицо при ответе на вопрос по веб-камере, а прочитать материал можно и с параллельно открытого документа на компьютере. Но не тут-то было!

    Многие российские ВУЗы для проверки успеваемости студентов внедрили программу Safe Exam Browser, которая предотвращает практически все попытки читерства. Конечно, для находчивых студентов и это не препятствие — ведь можно гуглить ответы на тест и на втором компьютере (или попросить погуглить друга).

    Но, поскольку мы в душе тру хацкеры, мы решили проверить, насколько этот SEB действительно помогает при проведении экзаменов и как все же программно обойти его чуткий контроль (при условии, что студент обладает базовыми навыками работы на компьютере, не впадает в ужас от слов «виртуальная машина» и знает, как установить плагин для браузера Mozilla Firefox). Готовы? Поехали!

    Что такое Safe Exam Browser (SEB)?


    Safe Exam Browser (SEB) — программа для проведения экзаменов, тестов и т.д. в режиме онлайн. Предусматривает защиту от:

    • открытия посторонних приложений (видео- и голосовой связи);
    • параллельного поиска информации в веб-браузере;
    • запуска приложения на виртуальной машине;
    • перехода на определенные сайты;
    • сохранения информации в буфере обмена перед входом в программу.

    Архитектура SEB включает в себя две части: десктопное приложение и браузер. Приложение запускается на компьютере учащегося и блокирует все остальные приложения, кроме необходимых для сдачи экзамена. Взаимодействие по сети возможно только с помощью браузера SEB, при этом браузер соединяется с образовательной платформой, на которой размещен тест или экзамен (например, Moodle). Экзаменатор может разрешить использовать во время сдачи экзамена сторонние приложения, например, Excel или калькулятор, и тогда учащемуся будет доступна возможность их запуска. Все подобные разрешения и другие настройки осуществляются с помощью конфигуратора SEB и записываются в конфигурационный файл, который впоследствии запускается десктопным приложением.


    Конфигуратор SEB представляет собой приложение с интуитивно понятным интерфейсом:


    В нем можно задать URL-адрес экзаменационного ресурса, список разрешенных/запрещенных приложений и сайтов, разрешения на загрузку файлов из Интернет, работу в виртуальной машине и т.д.

    Большой простор для творчества и фантазии, не так ли?) Что же, приступим.

    Для тестирования нам потребуется: программа SEB, виртуальная машина (VmWare, VirtualBox), браузер Mozilla Firefox, что-нибудь для компиляции большого проекта на C# (автор использовал Visual Studio Code), какой-нибудь образовательный ресурс (например, тест на Moodle, настроенный только для работы с SEB).

    Дисклеймер: при написании статьи автору очень помогла эта статья.

    1. Смена user-agent браузера


    Для реализации этого способа не потребуется практически никаких знаний и инструментов. Проверим, как реагирует тест на Moodle на запуск через обыкновенный веб-браузер:


    Как видно из скриншота, SEB не позволяет получить доступ к тесту из обычного браузера.
    Согласно документации, в качестве веб-браузера SEB использует XULRunner — движок Gecko браузера Mozilla. Попробуем подменить user-agent браузера Mozilla на user-agent, указанный в конфигураторе SEB:

    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0 SEB

    Установим какой-нибудь плагин для подмены user-agent, например, User-Agent Switcher, и добавим к нему следующий вариант:



    Ловкость рук и немного мошенничества — и теперь можно спокойно приступать к тесту, параллельно открыв гугл в соседней вкладке! :)



    2. Изменение конфигурационного файла виртуальной машины


    Предыдущий способ, конечно, очень прост и понятен, однако вполне может возникнуть ситуация, что экзаменатором собираются еще и логи экзамена — а SEB как раз логгирует все свои события: выключение неразрешенных процессов, очистку буфера обмена и многое другое. Поэтому надо найти способ читерить с включенным SEBом!

    Сначала мы решили посмотреть, можно ли включить SEB на виртуальной машине. Здесь, к сожалению, нас постигла неудача — в таких условиях SEB даже не позволяет себя запустить. Но как-то же он понимает, что используется виртуальная машина!

    Было опасение, что SEB использует не очень приятные для студента способы вроде обнаружения процессов и сервисов виртуальной машины (ВМ) в системе, но при изучении исходного кода было выяснено, что проверка на запуск из ВМ происходит в функции 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 и добавляем следующую строку:



    Теперь manufacturer model виртуальной машины станет таким же, как и у основной машины. Запускаем виртуальную машину, на ней включаем SEB и пытаемся получить доступ к тесту — все работает!

    3. Компиляция новых версий SEB


    А теперь переходим к самому интересному — компиляции «своей» версии SEB! Исходный код доступен здесь. Самое интересное, что конфигурационный файл SEB не отслеживает целостность десктопного приложения (либо отслеживает так, что мы смогли без проблем поменять большую часть кода, хи-хи), тогда как целостность конфигурационного файла, присланного экзаменатором, проверяется строже некуда.

    3.1 Запуск в виртуальной машине


    Подмену производителя мы уже сделали в пункте 2, но как было бы круто создать версию SEB, которая запускается в любой виртуальной машине, верно? К тому же, сделать это более чем легко (если не считать танцев с бубном при попытках скомпилировать проект в первый раз — а все из-за несходства платформ .NET).

    Итак, нужно всего лишь в приведенном выше коде закомментировать строчку с нужной ВМ:



    В данном случае мы скомпилировали программу таким образом, чтобы она вообще не реагировала на запуск в виртуальной машине VirtualBox. Но есть одно важное замечание: если наши читатели решат воспользоваться данным способом, то необходимо убрать/изменить логгирование событий! Виртуальная машина запустится без проблем, но в логах обязательно отразится запуск через VirtualBox.

    3.2 Очистка буфера обмена


    Когда SEB включается, он автоматически очищает буфер обмена. Таким образом, все, что скопировал студент до запуска SEB, в SEB не попадет. Что же, вызов принят!

    Здесь можно пойти двумя путями:

    1. Покопаться в файле SEBClipboard.cs, убрать логгирование ошибок или немного изменить алгоритм очистки буфера обмена.
    2. Закомментировать строку в файле 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 и 1 бессонную ночь за компьютером. Например, можно перекомпилировать SEB так, чтобы он не запускался поверх всех окон, и его можно было бы свернуть как обычное приложение.

    Также можно попробовать запустить SEB на других ОС (невероятно, но факт: очевидцы утверждают, что стандартный ВУЗовский конфиг для SEB на OS X даже голосовую связь по Discord остановить не может!).

    Итак, способов собрать SEB с урезанным функционалом — великое множество, тут все упирается только в воображение креативных и трудолюбивых студентов!

    Закончим статью народной мудростью: остановить студента в поиске халявы может только еще большая халява!
    НеоБИТ
    Компания

    Комментарии 39

      +3
      У меня, возможно, тупой вопрос, но: почему не гуглить на другом физическом устройстве?
        +4
        Вопрос очень логичный! Конечно, проще было бы сделать так! :) Но нам стало интересно, насколько «дыряв» SEB с программной стороны, отсюда, из «хакерского» энтузиазма, и родилась эта статья, которая носит скорее развлекательный характер :)
          0
          Конечно, для находчивых студентов и это не препятствие — ведь можно гуглить ответы на тест и на втором компьютере (или попросить погуглить друга).

          Ну и веб-камера. Есть софт, который определяет направление взгляда и обращает внимание проктора на это. Также при сдаче экзаменов часто требуют снимать руки.


          Вероятно, такие жёсткие меры не применяются вместе с SEB, но это лишь мое предположение

            +1
            Оу, я каким-то образом пропустил эти строки в статье. Моя кульпа.
              0
              Да, вы правы, но наш опыт (среди российских ВУЗов) показал, что во время именно прохождения тестов веб-камеры не были задействованы. А при устных ответах на вопрос с использованием веб-камер находчивые студенты смотрят в разные стороны, вспоминая материал :) Возможно, где-то действительно применяются более жесткие меры (например, для выпускников школ), но пока что в ВУЗах мы такого не встречали!
                0

                В этом году я писал олимпиаду по математике дистанционно. Там я впервые встретил шайтан-технологию захвата экрана из браузера. Ещё нужно было включать вебки, но у камеры моего ноутбука скромные углы обзора — видно либо лицо и плечи, либо руки и стол.


                Олимпиаду не списывал, если кому-то это важно :)

                  +1
                  Вот уж правда, шайтан-технология! :)
                    0
                    Слышал про технологию ответа учителю с закрытыми глазами. Не практиковали? )
                      0
                      видно либо лицо и плечи, либо руки и стол

                      Просят снимать стол второй камерой, например телефоном.

                0
                Честно скажу, что для обывателя установить SEB — уже проблема (наблюдал, помогал). Какое уж там хакерство.
                  +1

                  Лично у меня сразу возникла идея форкнуть код и сделать свою "хакерскую" версию. Времени на это, к сожалению, пока нет, но идея отправилась в мой TODO лист.
                  Логика подсказывает, что эта идея возникла не только у меня.

                  +1
                  Поставить второй комп рядом, подключить компы, клаву с мышкой и монитор через КВМ и под столом педалькой переключать )))
                  • НЛО прилетело и опубликовало эту надпись здесь
                      +16
                      «Сегодня экзамен по компьютерной безопасности, Вам всем поставлены неудовлетворительные оценки на сервере, у вас есть два часа, чтобы это исправить.»
                        +6

                        По сути, карантин и потуги в ограничении гугла на экзамене в очередной раз напомнили о том, как же ущербна система, требующая зазубривания, в принципе.
                        Ну вот не нужна в современном мире зубрежка.
                        Да, можно по всему миру развернуть экзаменационные центры с глушилкой радиосвязи, сертифицированными компами с запечатанными usb и армией прокторов.
                        Но вот, кому это все надо? Что это даст миру кроме бессоных ночей студентов?

                          +1

                          Да без проблем, предлагайте. У меня университетский курс по предмету в нашей области (ну т.е., условно, "программирование"). Имею полную свободу устраивать экзамены как хочу. Вот посоветуйте, что бы такое сделать, чтобы каждый получил в итоге честную оценку.

                            –1

                            Понимаю, что вопрос с подвохом. Но вот подвоха в упор не вижу. Написали бы все тоже, но по линейной алгебре, и это был бы вызов)
                            А по программированию, в чем проблема? Прежде всего, надо принять факт, что цель не в том, чтобы максимально точно отранжировать студентов, а том, чтобы дать навык, хз, как перевести, real world programming, решать свои задачи при помощи написания кода, уметь говорить на одном языке с профессиональными программистами.


                            Поэтому, я за личные маленькие проекты. Которые не должны в себе содержать вещи типа алгоритма Дейкстры, но должны
                            1) не повторять друг друга
                            2) быть написанными на мейнстримном языке. В идеале js, как для фронта, так и бека, можно python, но точно не C++ или Delphi
                            3) иметь хотябы микроскопическую, но пользу.
                            4) иметь побольше интеграций готовых компонент, API, готового ПО (СУБД, например)
                            5) размещены на github, и быть запущеными не на ноутбуке студента из под дебага, а на free tier публичного облака.


                            Ну вот, как-то так. Если человек все это успешно сделал и может прокомментировать каждый шаг и строчку кода, то он молодец. Если при этом есть тесты и ci, то он молодец вдвойне. А если появилось три калеки реальных пользователей, то это вообще что-то выдающееся. И если при этом человек, который хуже знает теорию, получит выше балл, то это тоже ок. Он лучше понял, как использовать программный код себе во благо.


                            Если же надо что-то на пару часов, то задача типа "спарсить курс биткойна и послать по имейл" с разрешенным гуглежом. Если опытные синиоры с SO не слазят, то зачем студенту запрещать?


                            PS: я сам на факультете с профильным программированием учился, видел много странного, включая задачу "написать решатель кубика рубика с визуализацией на open gl", и потуги людей, которые ее таки решили, но при этом забили на все остальные предметы.
                            PPS: явление, когда люди сдали прогу на 5, но без коммерческих курсов программирования не были способны закодить вообще ничего тоже видел

                              0
                              дать навык, хз, как перевести, real world programming, решать свои задачи при помощи написания кода

                              Этим часто занимаются курсы. Результат не всегда радует.


                              не повторять друг друга

                              Повторение — мать учения. Не совсем понятно, что вы имели ввиду. Иногда полезно одну и ту же вещь написать на разных технологиях, чтобы прочувствовать все достоинства и недостатки на себе, а не обращаться за чужим опытом (читай: зазубривать чужие статьи).


                              но точно не C++ или Delphi

                              За Дельфи ничего сказать не могу, но плюсы дают низкоуровневое понимание. Кстати, поэтому иногда преподают чистый C. Часто люди пишут и не понимают, что происходит под капотом. Эти знания могут быть применены, например, для оптимизации программ.


                              быть написанными на мейнстримном языке

                              Мейнстримные языки быстро учатся, особенно если вы уже освоили древний и могучий C. К тому же, многие ВУЗы предлагают изучение мейнстримных языков в качестве факультатива.


                              иметь хотябы микроскопическую, но пользу.

                              Тактично молчу.


                              иметь побольше интеграций готовых компонент, API, готового ПО (СУБД, например)

                              С СУБД студенты работают. Есть даже факультативы и пары по ним.
                              Но вы справедливо отметили, что они не всегда используются в проектах.


                              размещены на github, и быть запущеными не на ноутбуке студента из под дебага, а на free tier публичного облака.

                              Не очень понимаю, чем вызвано это требование. Умение собрать софт локально — полезный скилл, который, как мне кажется, нужен почти любому программисту. А если студент не может запустить проект с курса, который он посещает, то у меня возникают вопросы к студенту.


                              Он лучше понял, как использовать программный код себе во благо.

                              Во благо — очень странное понятие. Вот, например, TikTok сейчас популярен. Можно ли сказать, что это хороший продукт, раз рынок так решил? У меня язык не повернется.


                              Со всем остальным, в принципе, согласен

                                0
                                Не совсем понятно, что вы имели ввиду.

                                Чтобы не мигрировали проекты от предыдущего курса, параллельного потока. Чтобы все проекты были разными.


                                знания могут быть применены, например, для оптимизации программ

                                В том то и дело, что оптимизировать все по окончанию курса знатоки, а вот сделать с 0, начиная от сбора требований и заканчивая деплоем прода, могут очень немногие.


                                С СУБД студенты работают. Есть даже факультативы и пары по ним.

                                Да, SQL запросы на клетчатых листках пишут. Но вот целостной системы фронт-бек-субд не видят.


                                Во благо

                                Во благо себе. Ещё раз повторю — себе. TikTok дал благо его создателям.


                                Умение собрать софт локально — полезный скилл

                                Разумеется. Но без прода софта нет. Поэтому умение поднять прод — скилл необходимый.

                                0
                                Но вот подвоха в упор не вижу.

                                Подвоха тут никакого нет, но есть некоторая недоговорённость с моей стороны. Действительно, у нас есть курсы вида «веб-программирование», где студентам предлагается поднять свой проект. И в таком случае мы действительно даём им свободу: пишете такое-то задание, фреймворк любой, язык любой.

                                Но не каждый предмет под одну гребёнку можно причесать. Я веду, например, многопоточное и параллельное программирование. У меня нет цели заставить студента написать полноценную многопоточную систему (это сложно, да и не так я вижу курс). Мне нужно дать им ряд технологий и убедиться, что они усвоили. Например, есть задание на семафоры, на MPI, на разруливание всяких deadlocks/race conditions. Соответственно, есть пул заданий, которые на экзамене решают все. Ну и списать могут, конечно же.

                                К тому же, экзамен — это лишь последняя часть курса. У меня есть ещё задания к каждой конкретной теме, и здесь тоже списать большой соблазн.
                                  0
                                  Хорошо, есть задача, которая требует применения семафора. В чем проблема, что студент будет гуглить, решая ее? Если результат достигнут, и решение работает корректно, то, значит, студент сможет решить аналогичную задачу в боевых условиях. В чем проблема, если студент
                                  1) понял, какой примитив синхронизации нужен для решения
                                  2) успел за ограниченное время нагуглить и понять принцип его работы и пример кода
                                  3) написал рабочий код
                                  ?
                                    0
                                    Я готов рассмотреть этот вариант (такое называется open book exam и вполне себе практикуется). Проблема не в том, что студент гуглит, а в том, что он тупо списывает домашнюю работу/экзамен у другого студента. Вот с этим что делать — не представляю.

                                    Ну или бывают крайние случаи типа предмета «основы алгоритмов», когда реализация классических методов типа обхода дерева или сортировки является сутью курса и, стало быть, студент должен сам их писать. Хорошо, что я такое не преподаю, там ещё и не поймёшь, где списал, а где сам делал.
                                      0

                                      Вот сейчас скажу, наверное, очень непопулярную вещь, но считаю, что подробное изучение подобных вещей (основ алгоритмов) даёт неправильную систему ценностей студентам. И наносимый вред не покрывается пользой от умения писать оптимальный код.


                                      По сути, современное программирование о сборе воедино огромных готовых модулей, умении исследовать их возможности и находить оптимальную комбинацию.


                                      А подобные курсы, наоборот, формируют систему ценностей, в которой надо декопмпозировать задачу до мельчайших модулей, после чего реализовывать их и конструировать готовый продукт. Увы, такой подход не просто неконструктивен, а вреден, и его потом называют велосипедостроением и каленым железом выжигают в коммерческой среде. Думаю, о том, почему, и так очевидно

                                        +1
                                        У курса «Основы алгоритмов» (который я, к счастью, не веду) нет цели привить какую бы то ни было систему ценностей. И уж точно нет задачи заставить студента везде и всегда писать свою сортировку. Там цели совсем другие: 1) сформировать в голове «индекс» методов и структур данных, которые вообще в природе бывают, ну чтобы студент в принципе знал, что можно найти маршрут между двумя точками на карте или найти подстроку в строке; 2) сформировать представление о том, какой ценой (память/процессор) это в принципе даётся и как иногда получается одно купить ценой другого — чтобы студент примерно понимал, что если здесь у него будет поиск, это работать будет, скорее всего, с такой скоростью/сложностью/расходом памяти; 3) понимал бы на примерах как оно устроено изнутри, чтобы всё это не было какой-то чёрной магией и колдунством.

                                        Я, если надо, сам и дерево напишу, и сортировку запрограммирую, и вообще что нужно. Но мне однако не приходит в голову всё это писать самому, если можно взять готовое (а взять готовое не всегда есть где, кстати). Так что вряд ли курс тут виноват, систему ценностей формирует вся система обучения целиком, а в ней должны быть разные предметы, в том числе заточенные, например, на быструю сборку продукта из готовых компонентов, почему бы и нет.

                                        Но мы опять же ушли от исходной темы.
                                    0

                                    Кстати, когда я проходил "параллельное программирование" в роли студента, курс был необязательным и на него пришли только те студенты, которым курс был интересен. Нас было немного, но зато списывать никто и не собирался.

                                      0
                                      У нас он тоже необязательный, но по факту студентам надо набрать так много кредитных юнитов, что им всё равно приходится набирать некоторые курсы по принципу «уж лучше это, чем другое», так что выбор не совсем свободен.
                                  0
                                  Например, обилие домашних заданий и проектов, и какая-нибудь устная защита (если не ошибаюсь, в Школе анализа данных так делают).
                                    0
                                    Предположим, что курс разбит на темы, и стало быть, нельзя дать один итоговый проект, который бы студент пилил весь курс. Есть «семафоры», есть «дедлоки», есть «распределённые вызовы» и т.п., и каждую тему надо проверить отдельно. Итоговый экзамен, получается, должен быть очным (необязательно «устным», но на месте, стало быть, уже с удалёнкой проблемы). А домашние задания они списывают друг у друга, с этим боремся с переменным успехом.
                                0
                                Какое веселье я пропустил, сдавая в этом году переходные экзамены на второй курс колледжа. Всё, что у нас было, платформа moodle(настроенная кое-как с одной стороны, и учителя, не разбирающиеся в ней с другой) и никакого бреда с вебками, шпионскими браузерами и прочим)
                                  0
                                  Отслеживает ли seb удаленный доступ? если подключиться к устройству с seb по удаленке через anydesk или teamviewer и гуглить с другого физ устройства?
                                    0
                                    Да, к сожалению, такой способ SEB пресекает. Как удалось выяснить, Teamviewer входит в список запрещенных приложений, также как и Skype, Discord.
                                    Помимо этого, SEB отключает процессы и сервисы, связанные с RDP, так что другими программами, которые используют удаленный рабочий стол, воспользоваться не получится.
                                    Обойти это можно перекомпиляцией SEB:)
                                      0
                                      Странно, что при запуске SEB с включенным TeamViewer, Skype или Discord, он сразу выдает ошибку, что запуск с этими программами невозможен.Однако с включенным AnyDesk или DeskTool он спокойно включается и позволяет проходить пробные тесты в университетах:) Больше интересует именно не процесс отключения таких процессов, а может ли seb уведомить экзаменаторов о их использовании:)
                                        0
                                        Спасибо за информацию про anydesk, это очень интересно! В конфигураторе SEB стоит запрет на процессы RDP (рабочий конфиг одного из университетов), но, видимо, всё же не на все)
                                        По поводу уведомления — предполагаем, что если SEB запустился и работает с включенным приложением, то экзаменатор об этом может узнать только в том случае, если собирает логи — а стандартная версия SEB логгирует все включенные приложения:)
                                        0
                                        Parsec в запрещенном списке? (потому что его можно вполне себе как систему удаленного управления использовать, хотя он скорее для удаленной игры).
                                        Steam? (потому что Steam In-Home Streaming)
                                        Как быть с песочницами вроде Sandboxie (если есть версия под Win10)?
                                      0
                                      Остается только догадываться, логгирует ли seb процессы и действительно, просматривает ли экзаменатор логи процесссов seb'a каждого отдельного взятого абитуриента:)
                                        0

                                        Ещё, как вариант, делать проверку студентами логов друг друга + выборочная преподом.
                                        Разумеется, с использованием алгоритмов, аналогичных Amazon mechanical turk, для работы с исполнителями, к которым нет доверия

                                          0

                                          Вообще все эти кросспроверки ничем хорошим не заканчиваются, как по мне. Либо создают атмосферу нездоровой конкуренции, либо кто-то кого-то покрывает.
                                          Мне больше нравится идея паноптикума (не совсем уверен, что термин использован правильно) — студентам неизвестно, когда за ними наблюдают, поэтому они себя ведут хорошо всегда. Эта тема популярно освещена на канале ТОПЛЕС вот в этом видео.

                                        0

                                        NWOcs, посмотрев на исходный код проверок запусков процесса, кажется, может быть ещё один достаточно простой способ обхода: переименовать исполняемый файл блокируемого ПО (так как проверки завязаны на него, а не на заголовки окон ClassName-ы). Например, переименовать Skype.exe в Explorer.exe (проверил: скайпу всё равно как называется его исполняемый файл).


                                        PS. К сожалению, с данным софтом не знаком от слова совсем — потому не могу оперативно проверить сам.

                                          0
                                          Спасибо за предложенный простой и изящный способ :) Скорее всего, он сработает, нужно будет только убедиться, что Skype в ходе работы не открывает дополнительные запрещенные процессы (например, при демонстрации рабочего стола), иначе SEB может взбунтоваться)

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое