Wirebrowser is a CDP-based runtime instrumentation platform for the browser. Think Frida, but for JavaScript running in Chrome — without monkeypatching.
@Sharo_k_h I've released v0.7.0 and updated the tutorial (see Technique 5).
Breaking change: ctx.variables is now a list of variables that can be modified with ctx.setVariable (it can also modify a const! ).
For your example: hook at `"true" === e` and set `onHit(ctx){e = true}`
Stop stepping manually.
Skip execution until a condition flips and jump exactly where it happens:
🔥 loggedIn became true → line X
(no monkeypatching, just CDP)
@Sharo_k_h For minified code, I agree — finding the right execution point is the hard part. I’m also improving the Sources panel (pretty print + better navigation / deobfuscation) to make this much easier.
@Sharo_k_h The good news is this is exactly what I’m working on right now: in the next release (coming in the next couple of days), you’ll be able to hook directly at a precise location and modify local state (including values derived from consts). This will replace Live Hooks.
@Sharo_k_h Yes, great use case. Usually you hook the checks or nearby code and patch values/control flow so execution continues. I’ll make a tutorial 👍
You can hook JavaScript functions at runtime (even inside closures) without monkeypatching.
Wirebrowser v0.6.1
Frida-style instrumentation for the browser:
onEnter / onLeave handlers, return control.
Trace → Hook → Control
Wirebrowser v0.5.0 - Live Hooks:
• Identify the function via Origin Trace
• Hook it live
• Override return values
• Inject arbitrary code
Runtime instrumentation powered by CDP.
Wirebrowser 0.4.0 is out.
Request workflow improvements, Origin Trace fixes, and better stability.
macOS builds are now signed & notarised.
Landing page is live → https://t.co/EmEEoBknp8
From network interception to API collection.
Even heavy debuggers need to relax 😉
Wirebrowser isn’t just advanced tooling — it’s a complete workflow for everyday debugging tasks.
Network → Memory → DevTools
Rewrite a response → see the UI change → grab the JS object born from that response directly in the live heap → inspect/patch it from DevTools.
No instrumentation.
Just CDP.