【问题标题】:Which obfuscator generates this javascript code?哪个混淆器生成此 javascript 代码?
【发布时间】:2015-03-13 04:32:36
【问题描述】:

我需要一个 javascript 混淆器。我遇到了这段代码,其中函数名和参数名被混淆了。

我看过 UglifyJS 和 Google Closure,但它们只是为了最小化代码。

你知道哪个混淆器有这种能力吗?

function oa(a,b,c){return a.call.apply(a.bind,arguments)}function pa(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return 
function(){return a.apply(b,arguments)}}function qa(a,b,c){qa=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?oa:pa;return qa.apply(null,arguments)}
function ra(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}}var x=Date.now||function(){return+new Date};function y(a,b){var c=a.split("."),d=q;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)!c.length&&u(b)?d[e]=b:d[e]?d=d[e]:d=d[e]={}}
function z(a,b){function c(){}c.prototype=b.prototype;a.m=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.th=function(a,c,f){for(var g=Array(arguments.length-2),k=2;k<arguments.length;k++)g[k-2]=arguments[k];return b.prototype[c].apply(a,g)}};var sa;var ta=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};

【问题讨论】:

  • 当您查看 UglifyJS 时,您是否启用了 Mangler?
  • UglifyJS 应该这样做,除非你告诉它不要这样做。
  • 除了顶级 -mt--mangle-toplevel — 在顶级范围内也可以修改名称(默认情况下我们不这样做)。

标签: javascript obfuscation


【解决方案1】:

UglifyJS 就是这样。感谢大家的快速回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多