1

難読化したい Greasemonkey スクリプトがあります。利用可能な「Packer」Javascript難読化ツールで何が問題になるのか疑問に思っていました。

スクリプトは正常に圧縮されますが、インストール後、スクリプトは機能しません。GMスクリプトを難読化/パックして機能を保持するPHPクラスはありますか? または、どうすればこれを行うことができますか?

エラー:

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

実際、あなたの「Packed Script」は私のテスト ページで問題なく動作します。メタデータ ブロックそのままにしておいたのですね。

また、次を追加する必要があります。

// @grant GM_setValue
// @grant GM_getValue

(1)jQuery(およびその他)の競合を回避し、(2)これらのGM_機能が常にオンになっていることを確認します。


あなたの問題は、次の 1 つ以上です。

  1. メタデータ ブロックをパックまたは難読化しようとしました。 これはできません。Greasemonkey アドオンは、この正確なクリア テキスト形式を使用して、特定のスクリプトの処理方法を決定します。
  2. 特定のページとの競合。(@grant設定は、それを修正する必要があります)。
  3. あなたが私たちに見せていないあなたのコードの何か。
  4. 編集エラー、インストール エラー、または Firefox の「混乱した」インスタンス。

    1. スクリプトをアンインストールします。
    2. Firefox を完全にシャットダウンし、すべての FF タスクが停止していることを確認します。
    3. FF を再起動し、スクリプトを再インストールします。
    4. 「スクリプト エラー」から始まるトラブルシューティングのヒントに従ってください。
    5. トラブルシューティング (スクリプト作成者)も参照してください。
于 2013-05-01T09:51:14.467 に答える