3 ms·
The problem is that you can easily detect that some properties have been overloaded. For example, you can execute Object.getOwnPropertyDescriptor(navigator, "la
by gildas 9y ago
The problem is that you can easily detect that some properties have been overloaded. For example, you can execute Object.getOwnPropertyDescriptor(navigator, "languages") to detect if navigator.languages is a native property or not.
- numbsafari 9y agoCan’t I accomplish the same thing by compiling a modified version of headless chrome?
- gildas 9y agoYes I think it's possible but it's much harder to do, I guess.
- sigotirandolas 9y agoIt's possible to hide that as well, funnily enough, by also overwriting Object.getOwnPropertyDescriptor (and similar tricks). As far as I know, it's theoretically possible to use this trick to completely 'sandbox' some code so that there's no way it can detect certain functions being overwritten (by overwriting all functions such as Object.getOwnPropertyDescriptor, Function.toString, etc. and making them hide the overwritten functions, including themselves). For some more information: http://randomwalker.info/publications/ad-blocking-framework-techniques.pdf http://randomwalker.info/publications/ad-blocking-framework-...
- gildas 9y agoVery interesting article! Thank you.