Skip to content

How to Bypass disable-devtool Script in Browsers

Recently, I encountered an issue where the F12 key and various other methods could not open the DevTools (Developer Tools) in the browser. After trying multiple shortcuts and menu clicks, it was evident that the browser had been configured to disable DevTools. Our investigation led us to discover a specific JavaScript file named disable-devtool.min.js that blocks these tools.

Identifying the Issue

Upon further investigation, we found the culprit JavaScript file on GitHub and its documentation:

According to the documentation, the usage is quite simple. You just need to include the following script:

html
<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool/disable-devtool.min.js'></script>

Solution with mitmproxy

To bypass this restriction, we can use mitmproxy to intercept and modify the script on-the-fly. Follow these steps:

Step 1: Install mitmproxy

  1. Download windows installer from the officail website: mitmproxy download, install it.

  2. install mitmproxy python package.

bash
pip install mitmproxy

Step 2: Create a Script to Replace the JavaScript Content

Next, create a replacement script named change_response.py and save the following code:

python
from mitmproxy import http
from mitmproxy import ctx

class EditResponse:
    @staticmethod
    def response(flow: http.HTTPFlow):
        if flow.request.url.find("disable-devtool")!=-1:
            ctx.log(f"disable-devtool url : {flow.request.url}")
            ctx.log(flow.response.text)
            flow.response.text = ""

addons = [
    EditResponse()
]

Step 3: Run mitmproxy

Execute mitmproxy using mitmdump, which is the CLI tool for mitmproxy:

bash
mitmdump -s change_response.py

The default port is 8080, so you need to set your browser to use this proxy.

Step4: Windows Proxy Server Setting

On the windows Internet->Proxy Settting, set the proxy host and port to 127.0.0.1 and 8080 respectively

then your internet request will go to mitmproxy firstly.

You may also need to install certificates to fixed https error

Follow the tutorial at https://docs.mitmproxy.org/stable/concepts-certificates