Show HN: I'm building a browser for reverse engineers
1–10 of 58 posts
Re: Show HN: I'm building a browser for reverse engineers
#2For the fingerprinting part, can you explain the difference with the JShelter browser extension (https://jshelter.org/)?
I checked as you did in your demo video with https://demo.fingerprint.com/playground (using JShelter in Firefox). It produces a fingerprint detector report, like so :
{
"fpd_evaluation_statistics": [
{
"title": "Navigator.prototype.plugins",
"type": "resource",
"resource": "get",
"group": "BrowserProperties",
"weight": 0,
"accesses": 0
},
{
"title": "MediaDevices.prototype.enumerateDevices",
"type": "resource",
"resource": "call",
"group": "BrowserProperties",
"weight": 1,
"accesses": 2
},
[...]
}However, it appears there is no way to display what was actually produced by the browser.
Was this the reason you had to build your own browser? Or is it possible to extend JShelter to do the same?
Re: Show HN: I'm building a browser for reverse engineers
#3Very interesting, thanks! For the fingerprinting part, can you explain the difference with the JShelter browser extension ( https://jshelter.org/ )? I checked as you did in your demo video with https://demo.fingerprint.com/playground (using JShelter in Firefox). It produces a fingerprint detector report, like so : { "fpd_evaluation_statistics": [ { "title": "Navigator.prototype.plugins", "type": "resource", "resource…
Thank you for sharing :)
FWIW I still think a custom browser approach has some benefits (stealth and executing in out of process iframes. could be wrong on the second part, haven’t actually tested!)
Re: Show HN: I'm building a browser for reverse engineers
#4Re: Show HN: I'm building a browser for reverse engineers
#5Which for some functionality would have been a bit more portable and involved less effort.
Re: Show HN: I'm building a browser for reverse engineers
#6Not to comment on the rest of article or the author's goals, but it's absolutely possible to use a content script (dynamically injected into the `main` world, as opposed to the default `isolated`, for example: https://github.com/tbrockman/browser-extension-for-opentelem... ) and Proxy's ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... ) to hook (most? if not all) Javascript being executed in the webp…
FWIW I still think modifying the browser has some positives wrt stealth and hooking out of process frames (could be wrong on the second part, haven’t actually tested!)
Still good to know though will leave a note in the article :-)
Re: Show HN: I'm building a browser for reverse engineers
#7Re: Show HN: I'm building a browser for reverse engineers
#8Not to comment on the rest of article or the author's goals, but it's absolutely possible to use a content script (dynamically injected into the `main` world, as opposed to the default `isolated`, for example: https://github.com/tbrockman/browser-extension-for-opentelem... ) and Proxy's ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... ) to hook (most? if not all) Javascript being executed in the webp…
Thanks for sharing some examples! Someone shared a similar project in the other thread. I didn’t realize this at the time of writing haha. FWIW I still think modifying the browser has some positives wrt stealth and hooking out of process frames (could be wrong on the second part, haven’t actually tested!) Still good to know though will leave a note in the article :-)
Re: Show HN: I'm building a browser for reverse engineers
#9Not to comment on the rest of article or the author's goals, but it's absolutely possible to use a content script (dynamically injected into the `main` world, as opposed to the default `isolated`, for example: https://github.com/tbrockman/browser-extension-for-opentelem... ) and Proxy's ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... ) to hook (most? if not all) Javascript being executed in the webp…
Aside from playing a hooking/patching game of cat and mouse, I don't think this is fully solvable without modifying the browser engine itself - then you can hook things in a way that's completely transparent to the JS in webpages.