Example_1.webm
This repo allows you to run the Respondus Lockdown Browser in an isolated sandbox, completely bypassing its “security measures.” Usually, the Lockdown Browser blocks you from running it if it detects that it is being virtualized. However, this tool bypasses the detection, allowing us to virtualize it.
Sometime in February 2025, we began receiving reports that the Lockdown Browser was detecting the tool in this repository. Respondus rolls out updates fairly slowly, so this did not affect most users at first, but around May 2025, most users had received the update, and were therefore detected if they used this tool. Detection is often followed by a permanent ban, so although there is a chance that this tool might still work, it would be quite risky to try.
As mentioned in the previous update below, I have little time or ability to continue working on this project, so it is relatively unlikely that I myself will update this repository to work with the latest versions of the Lockdown Browser. Nevertheless, I will continue to intermittently reply to issues and discussions, and I will gladly accept any pull requests that help improve this project. Please follow issue #132 if you are interested on status updates regarding support for newer versions of the Lockdown Browser.
This project isn't dead, but—barring someone contributing a patch—it's probably finished. I'd like to thank all the contributors over the years: @shirt-dev, @mayed505, @dustindog101, and especially @Voidless7125. Somewhat ironically, I would also like to thank Respondus—I strongly disagree with how their software operates and their stance on privacy, but when they found out about this tool, instead of responding aggressively like some of their competitors, they simply patched their own software.
Finally, as a note to any non-programmers who may be reading this, I would like to point out that this project has never provided ready-to-install binary releases; instead, it has always required users to download the source code, which they can then use to create a usable version of the software themselves. I did this for three reasons:
-
First, to ensure that users would be able to inspect the source themselves, therefore allowing them to confirm that this tool functions as documented. This is the opposite of the Lockdown Browser, where users have no way to verify that the software works as advertised, and must therefore trust Respondus.
-
Second, my goal in releasing this repository was to show that the Lockdown Browser was ineffective. Proponents of the Browser argue that it's justified to trade reduced privacy for increased security, but if the Browser is ineffective, then there is no trade-off; you're just sacrificing privacy for no benefit. It is important to publicly release the source so that anyone can reproduce this bypass to demonstrate the Browser's poor security, but as I never intended for anyone to use this tool to cheat, it merely needs to be possible to reproduce the bypass, not easy.
-
Finally, I wrote the original implementation in a single day, and this original implementation was only a little more than 100 lines of code; my belief was that nearly anyone capable of installing a C compiler and compiling this software would be able to independently reproduce this bypass, with only a few hours of work, merely by reading the three paragraph “How does it work?” section below.
The following was originally posted in Discussion #53; the technical details are no longer relevant and have been elided here, but the overall background still stands.
[…]
Back when COVID first hit, some of my professors began to mandate that we use Respondus Lockdown Browser and Respondus Monitor to write our exams. I was incensed that we were required to install this invasive software on our personal computers and submit to being recorded by some random company, with no option to opt-out. I argued with my professors that this requirement was both unnecessary and unethical, but they refused to budge.
I proceeded to submit a formal complaint to the administration, and after a protracted series of emails, they eventually offered an alternative, and having no other options, I accepted. But this alternate writing method was fairly arduous: before each exam, I would drive to the campus, check out a laptop, and drive back home. On my personal laptop, I would start a video call with my professor who would watch me while I wrote the exam; on the campus laptop, I would use the Lockdown Browser (without Monitor) to take the exam. Once I was finished, I would drive back to campus to return the laptop. And furthermore, I was the only student who was allowed to use this method—everyone else was still required to use Respondus Monitor.
So then why did I decide to write this project?
To show that the Browser is ineffective.
All of my complaints were ignored because the university considers “preventing cheating” to be more important than the privacy of its students. But if the Browser were shown as being completely useless, then the university would have no reason to continue using it.
Help honest students protect their privacy.
Not all students were as lucky as I was to be offered an alternative writing method. I released this project to help the students who legitimately care about their privacy to partially alleviate some of the Browser's flaws.
Of course, it is certainly possible to use this project to cheat on exams, but you could say that about nearly any technology. The mere possibility of cheating is not a valid reason to invade the privacy of every student.
Four years ago, I started this project. It has now been three years since I transferred to a different university that does not use any invasive monitoring software, and two years since I have had any access to a computer that runs Windows.
What does this mean for the project? It means that I have little motivation or ability to make any significant updates to it. I do try to reply to issues and discussions whenever possible, but I've been quite slow at responding for this past year since I've been busy with other things. I tend to respond quicker to pull requests though.
[…]
So what comes next? Well, it's up to you. If you're able to find a way to patch around the Browser's upcoming update, then submit a pull request. Otherwise, you'll need to wait for someone else to do so.
“Federal Judge: Invasive Online Proctoring "Room Scans" Are Unconstitutional”, EFF
“A Long Overdue Reckoning For Online Proctoring Companies May Finally Be Here”, EFF
“The Security Failures of Online Exam Proctoring”, Schneier on Security
“The extremely shady "educational integrity" industry”, Cory Doctorow
“The pandemic showed remote proctoring to be worse than useless”, Cory Doctorow
-
2020-11-27, 11am
-
I initially begin investigating how to bypass the Lockdown Browser's restrictions.
-
I finished writing the initial proof-of-concept. The tool is fully functional at this point, although the documentation and build scripts aren't very polished yet. Nevertheless, even today, the repository uses the same technique used to bypass the Browser's restrictions as this initial release.
-
The repository is released to the public.
-
I accept the first contribution from an external contributor.
-
The earliest version of the repository available from the Internet Archive.
-
The repository is linked to from Respondus's internal bug tracker.
- Summer 2024
-
The repository now has 100+ stars on GitHub and the 77th support request was opened.
-
@Voidless7125's first contribution is accepted. He handles most of the support requests and contributes the vast majority of the new code over the next year. (Thanks!)
-
Respondus releases their first update that detects and blocks this tool. However, Respondus rolls out updates slowly, so most users are still unaffected.
-
A user confirms that Respondus is aware of this repository.
-
The update has rolled out to most users, so this tool no longer works for most users.
-
2026-01-16
-
This repository has received a total of 259 stars and 180 support requests.
First, I am uncomfortable installing random software on my computer. I only install software that is open source or from a trusted publisher, and this software is neither.
Second, the Lockdown Browser is essentially indistinguishable from malware. Read the following list of documented behaviors and see how similar these behaviors are to actual malware.
- They recommend disabling your antivirus software.
- The only way to exit it is to physically power off your computer.
- It disables the Task Manager.
- It tracks all open software.
And, of course, there are privacy issues. Cheating is no doubt an issue, but school-mandated surveillance software is a step too far. This is the most significant issue. I strongly recommend reading the following links from the EFF, a non-profit that focuses on defending digital privacy.
- Proctoring Apps Subject Students to Unnecessary Surveillance
- Students Are Pushing Back Against Proctoring Surveillance Apps
- Senate Letter to Proctoring Companies
This tool is not designed to facilitate cheating. Instead, I built it for three purposes:
First, it is designed to show school administrators that the Lockdown Browser is entirely ineffective. Respondus claims that it is the “gold standard” and that it cannot be bypassed, but that is false. I, a random University student, bypassed the Lockdown Browser in a single day. This removes all of the (supposed) benefits of the Lockdown Browser, and thus makes the issues look even worse.
Second, it is designed to prevent students from having to install invasive spyware on their personal computers. Sometimes, administrators won’t listen and will still force the Lockdown Browser on their students. This tool allows you to run the Lockdown Browser in an isolated sandbox, thus preventing the Lockdown Browser from modifying or spying on the rest of your computer. This tool is designed to run in the Windows Sandbox, but users should be able to adapt it to run in other Virtual Machine software quickly. This is especially valuable for Linux users since the Lockdown Browser does not run on Linux and otherwise refuses to run in a VM.
Finally, this tool allows you to take screenshots of the Lockdown Browser. Typically, the Lockdown Browser prevents you from taking screenshots of its window; however, this tool bypasses that restriction by running it inside the Windows Sandbox. Taking screenshots can provide accountability since nothing guarantees that no one changed your answers after submitting your test.
This repository does not contain any materials belonging to Respondus Inc. You must supply your legally-acquired Lockdown Browser .exe yourself. Any supporting and auxiliary files were either created by myself or gathered from various OSS projects with proper attribution. This project is not endorsed by Respondus Inc. or anyone except myself.
This project is intended merely as a proof-of-concept. While this tool could be used to facilitate cheating, this is not my intent. Any consequences of using this tool in a real exam are entirely your responsibility.
Also, I’d like to point out that Respondus has explicitly granted permission for this type of research. From their website:
Hacker Tested, Market Approved – Hundreds of universities and schools around the world use LockDown Browser. It seems that at least one person (or team) at each institution makes it a quest to “break out” or beat the system. Some of the best minds have taken our software to task over the years, and we’ve addressed each issue that’s been raised. (Yes, you have our blessing… go ahead and see if you can break it.)
-
Windows 10/11 Pro or Enterprise
-
(Make sure to include the “MSVC C++ build tools” and “Windows SDK” components.)
Make sure to clone the repository and run build.ps1. Then, install the Windows Sandbox. That’s it!
-
Build the project as shown above.
-
Download the Respondus Lockdown Browser and place it in
runtime_directory\. -
Double-click
Sandbox.wsb(it’s inruntime_directory\)(Alternative) If you want to pass your microphone and camera to the Lockdown Browser, run
Sandbox-with-Microphone-Camera.wsbinstead. -
Go to your test and open it. The Lockdown Browser will launch, and you can then use it to complete your test.
The release branch (default) always points to the latest stable
release. You should use this branch since it is the most
well-tested. To switch to this branch (not generally necessary since
it’s the default), run:
git switch releaseThe master branch will always point to the latest development version.
This branch has been tested and should generally be safe to use, but
it will often have minor issues that have not been fixed yet. You should
use this branch if it contains a feature or fix you need that is not in
the release branch or if the release branch isn’t working for you
and you’re feeling adventurous. To switch to this branch, run the following:
git switch masterThe dev branch contains in-progress work, is often broken, and should
only be used if you were specifically asked to test it. To switch to
this branch, run the following:
git switch devIf something isn’t working but was previously, you can always switch to a previous release by running:
git switch --detach <tag>where <tag> is the tag of the release you want to switch to. You can
browse the list of releases on
GitHub in
case you’re unsure which tag to choose.
This tool does not support having the Lockdown Browser update itself. Instead, whenever an update is available for the Browser, you should download a fresh installer from wherever you originally downloaded it. The URL should be similar in format to:
https://download.respondus.com/lockdown/download7.php?id=XXXXXXXXX
If the Lockdown Browser fails to launch, you can open the shortcut on the VM’s desktop. If you are on an older version, you’ll need to instead open a PowerShell prompt inside the VM and run:
cd C:\Users\WDAGUtilityAccount\Desktop\runtime_directory\
.\withdll.exe /d:GetSystemMetrics-Hook.dll "C:\Program Files (x86)\Respondus\LockDown Browser\LockDownBrowser.exe"(OEM versions of the Lockdown Browser must have a URL at the end; ldb:dh%7BKS6poDqwsi1SHVGEJ+KMYaelPZ56lqcNzohRRiV1bzFj3Hjq8lehqEug88UjowG1mK1Q8h2Rg6j8kFZQX0FdyA==%7D is a good default)
Of course, this is usually symptomatic of another issue, so please ensure you have followed all the earlier instructions.
If you have to build issues, please run .\build.ps1 -Clean to reset your workplace to a fresh start.
If you still have issues, run .\build.ps1 -Logs for logging into one file you can send us.
If you have made sure that you have followed all the instructions, please feel free to open a new issue. Ensure you include any error messages and your Lockdown Browser version.
This repo consists of simple tools cobbled together into a coherent package.
The Lockdown Browser detects a few BIOS-related registry keys in HKLM:\HARDWARE\DESCRIPTION. Therefore, sandbox_run.ps1 deletes these keys/values.
- When the Lockdown Browser detects that
VmComputeAgent.exeis running, it realizes it is in a VM and refuses to launch. This program is part of the Windows Sandbox, and cannot be stopped without crashing the VM. However, when the Browser checks all the running programs, it also opens and examines each image file. Ifsandbox_run.ps1deletes the image file, the Lockdown Browser acts like the program isn’t even running.
The Lockdown Browser calls GetSystemMetrics(SM_REMOTESESSION) to determine if it runs in an RDP session. Since this function is in user32.dll, there aren’t any trivial ways to fix this. However, Microsoft Detours allows you to intercept and replace any function in any .dll. A small hook (GetSystemMetrics-Hook.cpp) is used with Detours to intercept the function call and return a false value.
Because this tool runs in the Windows Sandbox, no state is retained between sessions. Therefore, this tool provides a scripted installer for the Lockdown Browser. The Lockdown Browser’s installer is a little tricky to script, so the installation is a little hacky, but it works. And again, the Sandbox is completely isolated from the rest of your system, so the Lockdown Browser cannot cause any harm to your computer.
If you’re having any difficulties installing the prerequisites or have any other questions, please start a new discussion, and we’ll be happy to help. If you’re experiencing any bugs while building the project or running the Windows Sandbox, please open a new issue. If you want to submit a patch, please open a new pull request.
I will also usually reply to emails, but I have a very busy schedule, so it may take a while (many months) for me to respond, and I will often ask you to post an issue on GitHub. So, to reiterate, the best way to get support is to post an issue or a discussion here on GitHub.
All code is licensed under the Mozilla Public License, version 2.0 or greater. The documentation is licensed under CC-BY-SA, version 4.0 or greater, in addition to the MPL. The Detours submodule has an MIT licence as detailed in Detours/LICENSE.md.
In addition to the formal licence terms, I would appreciate it if users do not distribute any binaries: I intend this project to be merely a proof-of-concept, and any binaries circulating on the internet diminish this status. Of course, you are well within your rights to ignore this request, but I would appreciate it if you would respect my wishes. Thanks!