问题描述
这个问题很难描述,所以我会尽力的。
我需要反转使用代码流混淆,数据转换和其他方法的混淆JavaScript。 在此代码中,程序将保存一些函数以在流程中使用它们。 这些函数是通过调用特定函数创建的,我需要使用创建的函数来获取该特定函数的参数(这些参数对于预测堆栈流很重要)
这里是一个例子:
function createFunction(arg){
return function(){
'use strict';
// Do some things with arg
return true;
}
}
var func = createFunction(5);
// Need to get the argument 5 of createFunction from func var
var bool = func();
注意:返回的函数处于严格模式
我不知道是否有可能,我尝试了很多事情,检查了每个原型或属性等。
谢谢。
编辑:
如果不编辑任何代码,这是不可能的,JavaScript中的闭包和词法作用域确实非常严格,就我而言,我只是在函数声明后创建了一个断点,然后我自己通过向返回的函数添加原型来覆盖了函数本身参数。
function createFunction(arg){
var fn = function(){
'use strict';
// Do some things with arg
return true;
}
fn.prototype.arg = [arg];
return fn;
}
var func = createFunction(5);
var arg = func.prototype.arg; // 5 is here now
var bool = func();
这是一个很好的解释:JS: Nested functions gain a copy of the outer function's parameters?
还有一些文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)