了解恶意js文件

时间:2017-03-30 21:43:20

标签: javascript reverse-engineering

我正在尝试扭转恶意js脚本以找出它的作用。剧本很长,但有一部分我不完全理解,希望你能帮忙。我只会向相关部分显示脚本的一小部分,以帮助解决此问题,以避免任何人意外地运行它。

以下行多次调用函数UU:

ib[0] = O(Arw,UU(1017-980)+UU(19+81)+UU(32*3)+UU(51+25)+UU(4508/98+0)+UU(671-606)+UU(1677/43+0)+UU(631-522)+UU(5*23)+UU(7719/83-0)+UU(6+93)+UU(4*23));

功能UU具有以下设置:

function UU(s)
{
    var Ea = ",!)Q ;Zrvz2^@HgS{I~1(O`ba'&l%$mqVCXG9#w0]d.-8W_34[kA5<n/RBDLsFN\\tpY6E7fy?oi|+\"xJ>ThUc=uKjeM:}*P";
    var h=30090;
    var yz=h+29060;
    var mm=yz/650;
    var PF=mm-60;  31
    var i = Ea[L(s)](s-PF);
    return i;
}

获得返回值的部分操作&#34; i&#34;调用函数L:

function L(R)
{
    return "\x63\x68\x61\x72A\x74";
}

问题:什么是函数L返回?

我认为函数L试图模糊其返回值,以使分析更难。我不确定是否需要将其转换为ASCII或Decimal以准确完成函数UU中的字符串查找

1 个答案:

答案 0 :(得分:1)

这些是转义字符。查找ASCII表中的值相当容易,但您也可以console.log字符串查看结果值。

&#13;
&#13;
console.log("\x63\x68\x61\x72A\x74");
&#13;
&#13;
&#13;

评估为charAt