1

我有一个想要混淆的 Greasemonkey 脚本。我想知道可用的“Packer”Javascript obfuscator出了什么问题。

它可以很好地压缩脚本,但安装后,脚本不起作用。是否有任何 PHP 类可以混淆/打包 GM 脚本并保留功能?或者我该怎么做?

错误:

Timestamp: 01-05-2013 13:11:35
Error: missing ; before statement
Source File: file://file_path
Line: 1

脚本:

// ==UserScript==
// @name           Test
// @namespace      http://*
// @description    Test
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
// ==/UserScript==

var SomeVar = "Something";
GM_setValue("foo","bar");
var AnotherVar = GM_getValue("foo");
alert(AnotherVar);

打包脚本:

eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0 3="4";5("1","6");0 2=7("1");8(2);',9,9,'var|foo|AnotherVar|SomeVar|Something|GM_setValue|bar|GM_getValue|alert'.split('|'),0,{}))
4

1 回答 1

10

实际上,您的“打包脚本”在我的测试页面上运行良好。您确实元数据块保持原样,对吗?

此外,您应该添加:

// @grant GM_setValue
// @grant GM_getValue

到元数据块以(1)避免 jQuery(和其他)冲突和(2)确保这些GM_功能始终打开。


您的问题是以下一项或多项:

  1. 您试图打包或混淆元数据块。 你不能这样做;Greasemonkey 插件使用这种精确的明文格式来确定如何处理给定的脚本。
  2. 与特定页面的冲突。(@grant设置,应该解决这个问题)。
  3. 您的代码中没有向我们展示的内容。
  4. Firefox 的编辑错误、安装错误或“混乱”实例。

    1. 卸载脚本。
    2. 完全关闭 Firefox,确保所有 FF 任务都已停止。
    3. 重新启动 FF 并重新安装脚本。
    4. 遵循从“脚本错误”开始的故障排除提示,向下。
    5. 另请参阅疑难解答(脚本作者)
于 2013-05-01T09:51:14.467 回答