A one-click replacement for the manual Fiddler-based workflow used to capture
Steam credentials for RotMG. Instead of manually configuring Fiddler, trusting
its certificate, and reading raw traffic, this tool wraps the same process in
a small Tkinter GUI backed by mitmproxy.
Reference: Steam Users Setup Guide (Fiddler method)
Under the hood this does exactly what Fiddler does, just automated:
- Starts a local HTTPS-intercepting proxy (
mitmdump, part of mitmproxy) on127.0.0.1:8888. - Points your Windows per-user proxy setting at it — the same registry value Fiddler flips when you toggle "Capture Traffic."
- Uses mitmproxy's own trusted root certificate to decrypt HTTPS traffic, the same role Fiddler's certificate plays.
- Runs a capture addon (bundled in this same script) that watches for the
/steamworks/getcredentialsresponse, parses it, and writes the result tocaptured_credentials.json.
The proxy is automatically disabled and your system network settings are restored as soon as a capture completes (or if you click Disable).
- Windows 10/11 (the proxy-toggle and cert-trust steps are Windows-specific; on other platforms these steps are skipped with a console message)
- Python 3.9+
mitmproxy(installs themitmdumpCLI used internally)bcrypt<5.0.0— newer bcrypt releases break mitmproxy's dependency onpassliband will crashmitmdumpon startup
Install everything with:
pip install -r requirements.txtIf you don't have a requirements.txt yet, at minimum:
mitmproxy
bcrypt<5.0.0
You only need to do this once per machine:
- Run the tool:
python capture_tool.py
- Click Enable Capture once — this makes mitmproxy generate its root
certificate on first run (stored at
~/.mitmproxy/mitmproxy-ca-cert.pem). - Click Disable.
- Click Trust CA (one-time) — this installs the mitmproxy root
certificate into the current user's trusted root store via
certutil -user -addstore Root. No admin/UAC elevation is required.
- Run the tool:
python capture_tool.py
- Click Enable Capture.
- Launch Steam and RotMG, and get to the main menu.
- The tool watches traffic in the background. As soon as it sees a
/steamworks/getcredentialsresponse, it:- Parses the returned fields (XML, with a regex fallback if parsing fails)
- Saves the full result to
captured_credentials.jsonin the script's directory - Displays the parsed fields in the window
- Automatically disables the proxy and restores your normal network settings
captured_credentials.json (written next to the script) contains:
{
"url": "full request URL that was captured",
"raw_response": "raw response body",
"parsed_fields": { "...": "..." }
}Any previous copy of this file is deleted at the start of each new capture session.
"mitmdump exited immediately"
Usually caused by a bcrypt/passlib version mismatch. Try:
pip install "bcrypt<5.0.0""mitmdump" not found
The tool falls back to running mitmproxy as a Python module
(python -m mitmproxy.tools.main mitmdump) if the mitmdump executable
isn't on your PATH, so this should resolve itself automatically. If it
doesn't, confirm mitmproxy installed correctly with pip show mitmproxy.
"Trust CA" fails with a missing-certificate message
mitmproxy only generates its root certificate the first time mitmdump
actually starts. Click Enable Capture, wait a few seconds, click
Disable, then try Trust CA again.
certutil fails
The error message from certutil is surfaced directly in the log window —
check that output for the specific reason (e.g. permissions, corrupt cert
file).
- All traffic interception happens locally; nothing is sent anywhere besides your own machine's proxy.
- The root certificate is trusted at the current user level only, not machine-wide.
- The proxy and certificate trust only affect apps that respect the Windows system proxy setting (which Steam/RotMG do, matching the original Fiddler workflow).