了解恶意js文件

Understanding a malicious js file

我正在尝试逆向恶意 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;
}

获取return值的部分操作"i"调用函数L:

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

问:Lreturning函数是什么?

我认为函数 L 试图混淆它的 return 值,以便使分析更加困难。我不确定是否需要将其转换为 ASCII 或 Decimal 以准确完成函数 UU

中的字符串查找

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

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

计算结果为 charAt