【问题标题】:Understanding a malicious js file了解恶意js文件
【发布时间】: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


【解决方案1】:

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

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

计算结果为charAt

【讨论】:

  • 在您的 cmets 之后,我现在清楚地看到它正在调用字符串函数 charAt!有时需要轻推才能看到明显的东西,谢谢分配:)
猜你喜欢
  • 2012-03-26
  • 2019-01-14
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多