【发布时间】:2017-08-25 00:43:08
【问题描述】:
我正在尝试逆向一个恶意的 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;
}
获取返回值“i”的部分操作调用函数L:
function L(R)
{
return "\x63\x68\x61\x72A\x74";
}
问题:函数 L 返回什么?
我相信函数 L 试图混淆它的返回值,以使分析更加困难。我不确定是否需要将其转换为 ASCII 或 Decimal 才能准确完成函数 UU 中的字符串查找
【问题讨论】:
-
你有没有看到
"\x63\x68\x61\x72A\x74"没有被混淆?因为这样做很简单:只需将"\x63\x68\x61\x72A\x74"粘贴到您的控制台中,您就会发现它只不过是"charAt"。
标签: javascript reverse-engineering