Safe Exam Browser has basic inegrity checks in their code which can easily be bypassed by just editing them to return true. Luckily SEB also has some other features where the one that would stop this PoC are the BrowserExamKey and ConfigurationKey. It is documented here: https://safeexambrowser.org/developer/seb-config-key.html and here: https://safeexambrowser.org/developer/documents/SEB-Specification-BrowserExamKey.pdf In short: when creating a config file, there will be 2 strings autogenerated that are unique to that config file (ConfigKey/CK) and one thats unique to the config file, SEB version and OS platform (BrowserExamKey/BEK). (Proctors should always password-lock these config files, otherwise students could just copy the config keys) SEB sends a request header with each request for each key. For the BEK it would look something like this: "X-SafeExamBrowser-RequestHash" = 81aad4ab9dfd447cc479e6a4a7c9a544e2cafc7f3adeb68b2a21efad68eca4dc; When the exam website receives the request, it should check for these headers and compare them to the ones generated in the config file. if they dont match up the students SEB installation is not legit or faulty. hope this helps. additional links i found: Example with the KUL university exam platform: https://www.kuleuven.be/onderwijs/learninglab/ondersteuning/tools-multimedia/toledopedia/ans/assets/seb-doc-expert-nl.pdf (Dutch) Moodle's implementation of SEB: https://docs.moodle.org/500/en/Safe_Exam_Browser Bookwidgets SEB integration: https://www.bookwidgets.com/blog/2020/11/how-to-take-secure-digital-student-exams-with-bookwidgets-and-safe-exam-browser