Greasemonkey 替换网页中的 unityObject 源

Greasemonkey replace unityObject source in webpage

我是 Greasemonkey 的新手,我搜索了很多我想做的事情,但没有找到任何东西。我正在为这个基于浏览器的 Unity FPS 做一些白帽黑客攻击,我试图让网页嵌入一个直接 linked 编辑的游戏文件副本,而不是普通的游戏客户端。 具体来说,我正在尝试更改 this 页面源代码第 335 行 UnityObject.embedUnity() 函数的第二个属性中的 URL。我认为 Greasemonkey 是解决它的方法。

我的困惑来自以下事实:查看源代码 (ctrl+u) 在 javascript 函数中显示该源代码,但在开发工具中使用检查器在嵌入标记中显示函数的结果.我不确定在我的 Greasemonkey 脚本中应该考虑哪些因素。我还没有直接的 link 文件,但我尝试了这个脚本(没有用)(google 只是一个占位符,用于查看文本替换是否有效):

var tags = document.getElementsByTagName('embed'); tags[0].src = tags[0].src.replace('http://oldurl.com', 'http://newurl.com')

我将如何编写脚本来执行此操作?

那个embed元素是由位于页面<script>标签内的Unity Player js代码插入的,当浏览器解析它时自动执行。

Firefox 仍然有 beforescriptexecute 事件,您可以在它运行之前使用它来更改该脚本:

document.addEventListener("beforescriptexecute", replacePlayer, true);
function replacePlayer(e) {
    var lookFor = 'http://data.warmerise.com/Warmerise/Production/Warmerise.unity3d?5.7.5';
    var replaceWith = 'http://google.com';
    if (e.target.text.indexOf(lookFor) > 0) {
        e.target.text = e.target.text.replace(lookFor, replaceWith);
    }
}