我有一个恶意的JavaScript代码,其中包含一些混淆的变量声明,如下所示:
var saki8haveTogether48 = {
st9a: function (abert, z, n, m) {
return String["fromChar" + "Co" + "" + "de"]((+'111') + 5)
},
revie5: '123'
} ['st9a'](function () {
return true;
}, 0, 0, 1) + {
marbl8a: function (abert, z, n, m) {
return String["fromChar" + "Co" + "" + "de"]((+'109') + 5)
},
studi8: '95'
} ['marbl8a'](function () {
return true;
}, 0, 0, 1) + {
meta9a: function (abert, z, n, m) {
return String["fromChar" + "Co" + "" + "de"]((+'92') + 5)
},
brig6: '103'
} ['meta9a'](function () {
return true;
}, 0, 0, 1) + {
works9a: function (abert, z, n, m) {
return String["fromChar" + "Co" + "" + "de"]((+'105') + 5)
},
this94: '100'
} ['works9a'](function () {
return true;
}, 0, 0, 1) + {
whi5a: function (abert, z, n, m) {
return String["fromChar" + "Co" + "" + "de"]((+'110') + 5)
},
pre8: '121'
} ['whi5a'](function () {
return true;
}, 0, 0, 1);
有超过50种这样的变量声明,因此我打算以某种自动化的方式来做到这一点。
我的方法是使用eval()函数标记要评估的脚本的某些部分。评估之后,我想用我评估过的代码替换混淆的代码。上面的代码段就是这样一个例子。
但是,当我评估该变量声明的右侧时,出现错误消息:
SyntaxError: Function statements require a function name
我的问题是:有什么方法可以评估语句的右边吗?