Wirebrowser (@wirebrowser) header
Wirebrowser (@wirebrowser) profile picture

Wirebrowser is a CDP-based runtime instrumentation platform for the browser. Think Frida, but for JavaScript running in Chrome — without monkeypatching.

Joined November 2025
Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)Photo by Wirebrowser (@wirebrowser)
Replying to @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}`
1
1
22
Stop stepping manually. Skip execution until a condition flips and jump exactly where it happens: 🔥 loggedIn became true → line X (no monkeypatching, just CDP)
1
1
186
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.
1
1
21
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.
2
1
22
Replying to @Sharo_k_h
Great questions — these are exactly the tricky real-world cases 👍 For conditional registration, today it’s a bit limited with Live Hooks, since you can’t easily patch a const at that point.
1
1
16
Replying to @Sharo_k_h
Hey! Curious if you had a chance to look at the tutorial — any feedback would be super helpful 👍
1
13
Replying to @Sharo_k_h
I made a draft tutorial based on your postMessage case: fcavallarin.github.io/wirebr… Would really appreciate your feedback — especially if something feels off or missing 👍 (it uses a small update in v0.6.2 for the Sources workflow)
1
35
Replying to @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 👍
1
1
42
Replying to @Sharo_k_h
In the meantime, here are some API examples: fcavallarin.github.io/wirebr…
1
37
Replying to @Sharo_k_h
Thanks, super helpful. I’m preparing short, practical tutorials. Which one would you like first? - Modify a function inside a closure - Change a value where it’s used - Modify args/variables - Conditional stepping - if x then stepOut() - Search memory
1
1
53
Main limitation: no real async invocation identity in CDP. Correlation across async boundaries is heuristic (stack similarity + timing).
127
Most JavaScript functions aren’t accessible from window. You can still hook them, follow their return, and flip application state at runtime.
2
2
243
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.
7
352
Some data used to generate network requests only exists in runtime memory. Wirebrowser → Heap Snapshot → search
1
217
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.
3
242
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 → wirebrowser.dev
2
246
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.
1
280
Wirebrowser 0.3.0 dev builds ✅ Cross-platform Electron builds Custom Chrome management Unsigned binaries for now. Signed release coming next.
3
207
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.
2
246