【问题标题】:how to redefine a obfucated javascript function如何重新定义混淆的 javascript 函数
【发布时间】:2017-11-25 19:51:42
【问题描述】:

我想编写一个脚本来重新定义现有的混淆 javascript 函数。

这是我从我的网站复制的功能。

userAgentKey: function(e) {
            return this.options.excludeUserAgent || e.push({
                key: "user_agent",
                value: this.getUserAgent()
            }), e
        },

此函数返回我的浏览器的用户代理(用于指纹识别)。

我想操作返回值并希望这个函数返回“exampleBrowserUserAgent”。 我没有任何 OOP 经验。

我的问题是这并没有重新定义我的代码..

function userAgentKey(){
return "exampleBrowserUserAgent"
}

如何操作返回值?

感谢您的帮助!

编辑:网站使用fingerprintjs2。这里是链接:enter link description here

【问题讨论】:

  • 请您提供指向您网站的链接,或者您试图间接修改的脚本?
  • 要操作您的用户代理,请使用您的浏览器设置。 (请注意,使用不常见的非标准值会让您更容易识别指纹)
  • 我编辑了我的问题。在那里你可以找到fingerprint2.js 的链接。谢谢你。是的,欺骗用户代理会更容易,但我想编写一个用户脚本,因为我想用随机值操作所有指纹结果(例如来自不同浏览器的随机用户代理)

标签: javascript function redefine


【解决方案1】:

只修改浏览器的userAgent不是更简单吗?

Object.defineProperty(navigator, "userAgent", {value: "exampleBrowserUserAgent"});

当然你也可以直接修改方法,前提是你的脚本可以访问方法所在的作用域,并且方法已经加载但还没有执行:

SomeObject.userAgentKey = myUserAgentKeyFunc;

如果您尝试更改 userAgent 是因为您不想让其他人知道您正在使用哪个浏览器,那么您最好在开发人员工具中直接更改它或创建一个为您修改它的扩展程序.

【讨论】:

  • 感谢您的解决方案,它对我来说很好用!我想要一个用户脚本的原因是因为我想编写一个脚本来保存不同跟踪技术的用户,而无需安装 1000 个插件或编辑(危险)浏览器设置(如 about:config)。
猜你喜欢
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 2022-01-16
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多