我正在开发一个Chrome扩展程序,可以根据https://panopticlick.eff.org/results?aat=1&dnt=111#fingerprintTable中的“WebGL指纹哈希”更改我的指纹。我开始使用以下链接中提供的代码https://intoli.com/blog/making-chrome-headless-undetectable/,将其复制到我的concept.js文件中,该文件如下所示:
const getParameter = WebGLRenderingContext.getParameter;
WebGLRenderingContext.prototype.getParameter = function(parameter) {
// UNMASKED_VENDOR_WEBGL
if (parameter === 37445) {
return 'Intel Open Source Technology Center';
}
// UNMASKED_RENDERER_WEBGL
if (parameter === 37446) {
return 'Mesa DRI Intel(R) Ivybridge Mobile ';
}
return getParameter(parameter);
};
我的清单json非常简单,设置为在文档开始运行,它也确实可以运行。然而,使用上述扩展,我的WebGL哈希值没有任何差别。我知道扩展中的代码实际上是在运行,因为我已经用一堆小的javascript弹出窗口进行了测试。
我完全不知道怎么办,已经花了几个小时来解决这个问题,但毫无进展,非常感谢所有的帮助。
编辑:为了完整起见,以下是我的manifest.json文件。
{
"manifest_version": 2,
"name": "JavaScript Injection",
"version": "1.0.0",
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["injected-javascript.js"],
"run_at": "document_start"
}
]
}