这种混淆是如何工作的,如何去混淆?

逆向工程 javascript
2021-06-19 15:34:46
Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§=~[];Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§={___:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$$$$:(![]+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§],__$:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$_$_:(![]+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§],_$_:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$_$$:({}+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§],$$_$:(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§]+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§],_$$:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$$$_:(!""+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§],$__:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$_$:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$$__:({}+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§],$$_:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$$$:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$___:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§,$__$:++Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§};Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_=(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_=Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$]+(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$=Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$])+(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$=(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$])+((!Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§)+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$]+(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__=Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_])+(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$=(!""+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$])+(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._=(!""+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_])+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$]+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$;Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$=Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$+(!""+"")[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$]+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$;Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$=(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___)[Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_][Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_];Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$(Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$+"\""+"$('<\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+"=\\\""+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"."+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+".\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"?\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+"="+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+"\\\"><\\\\/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+">')."+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+"(\\\""+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\\"),\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"$('<\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+"=\\\""+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+".\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+"_"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+".\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+"?\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+"="+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+"\\\"><\\\\/\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$__+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__+">')."+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.___+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$_+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$_+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$__+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+"(\\\""+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$_$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§._$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$_$+"\\"+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.$$$+Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§.__$+"\\\");"+"\"")())();
2个回答

这个混淆的代码利用了广泛的可能性来命名 Javascript 变量。这使得简单混淆的 Javascript 代码看起来更可怕。

正如我在这篇精彩文章Valid JavaScript variable names 中指出的那样,我从这个答案中提取了Javascript 变量可以使用多种字符来表示:

标识符必须以$_或 Unicode 类别中的任何字符开头大写字母 (Lu) ”、“小写字母 (Ll) ”、“大写字母 (Lt) ”、“修饰符字母 (Lm) ”、“其他字母 ( Lm)Lo) ”或“字母编号 (Nl) ”。

字符串的其余部分可以包含相同的字符,加上任何 U+200C零宽度非连接字符、U+200D零宽度连接 字符以及 Unicode 类别“非间距标记 (Mn) ”、“间距组合中的字符标记 (Mc) ”、“十进制数字 (Nd) ”或“连接标点符号 (Pc) ”。

要开始对我建议的代码进行反混淆,首先将变量名称重命名为更具可读性的名称,例如x. 使用您最喜欢的编辑器,替换Ø Ø¡Ø¢Ø£Ø¤Ø¥Ø¦Ø§to 的每个实例x然后在每个分号后换行,使阅读更容易:

x=~[];
x={___:++x,$$$$:(![]+"")[x],__$:++x,$_$_:(![]+"")[x],_$_:++x,$_$$:({}+"")[x],$$_$:(x[x]+"")[x],_$$:++x,$$$_:(!""+"")[x],$__:++x,$_$:++x,$$__:({}+"")[x],$$_:++x,$$$:++x,$___:++x,$__$:++x};
x.$_=(x.$_=x+"")[x.$_$]+(x._$=x.$_[x.__$])+(x.$$=(x.$+"")[x.__$])+((!x)+"")[x._$$]+(x.__=x.$_[x.$$_])+(x.$=(!""+"")[x.__$])+(x._=(!""+"")[x._$_])+x.$_[x.$_$]+x.__+x._$+x.$;
x.$$=x.$+(!""+"")[x._$$]+x.__+x._+x.$+x.$$;
x.$=(x.___)[x.$_][x.$_];
x.$(x.$(x.$$+"\""+"$('<\\"+x.__$+x.$$_+x._$$+x.$$__+"\\"+x.__$+x.$$_+x._$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$$_+x.___+x.__+"\\"+x.$__+x.___+"\\"+x.__$+x.$$_+x._$$+"\\"+x.__$+x.$$_+x._$_+x.$$__+"=\\\""+x.$_$_+"\\"+x.__$+x.$$_+x._$$+"\\"+x.__$+x.$$_+x._$$+x.$$$_+x.__+"\\"+x.__$+x.$$_+x._$$+"/\\"+x.__$+x.$_$+x._$_+"\\"+x.__$+x.$$_+x._$$+"/\\"+x.__$+x.__$+x.$_$+x.$_$_+x.__+"\\"+x.__$+x.$__+x.$$$+"\\"+x.__$+x.$_$+x.___+"\\"+x.__$+x.$$$+x.__$+x._+"/\\"+x.__$+x.___+x._$$+x.$$$_+x.$_$+x.$_$_+"/\\"+x.__$+x.$$_+x.$$$+x.$_$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$$_+x._$_+"."+x.$$__+x._$+"\\"+x.__$+x.$$_+x._$_+x.$$$_+".\\"+x.__$+x.$_$+x._$_+"\\"+x.__$+x.$$_+x._$$+"?\\"+x.__$+x.$$_+x.$$_+"="+x.__$+x.$$_+"\\\"><\\\\/\\"+x.__$+x.$$_+x._$$+x.$$__+"\\"+x.__$+x.$$_+x._$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$$_+x.___+x.__+">')."+x.$_$_+"\\"+x.__$+x.$$_+x.___+"\\"+x.__$+x.$$_+x.___+x.$$$_+"\\"+x.__$+x.$_$+x.$$_+x.$$_$+"\\"+x.__$+x._$_+x.$__+x._$+"(\\\""+x.$_$$+x._$+x.$$_$+"\\"+x.__$+x.$$$+x.__$+"\\\"),\\"+x.__$+x._$_+"$('<\\"+x.__$+x.$$_+x._$$+x.$$__+"\\"+x.__$+x.$$_+x._$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$$_+x.___+x.__+"\\"+x.$__+x.___+"\\"+x.__$+x.$$_+x._$$+"\\"+x.__$+x.$$_+x._$_+x.$$__+"=\\\""+x.$_$_+"\\"+x.__$+x.$$_+x._$$+"\\"+x.__$+x.$$_+x._$$+x.$$$_+x.__+"\\"+x.__$+x.$$_+x._$$+"/\\"+x.__$+x.$_$+x._$_+"\\"+x.__$+x.$$_+x._$$+"/\\"+x.__$+x.__$+x.$_$+x.$_$_+x.__+"\\"+x.__$+x.$__+x.$$$+"\\"+x.__$+x.$_$+x.___+"\\"+x.__$+x.$$$+x.__$+x._+"/\\"+x.__$+x.___+x._$$+x.$$$_+x.$_$+x.$_$_+"/\\"+x.__$+x.$$_+x.$$$+x.$_$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$$_+x._$_+".\\"+x.__$+x.$_$+x.$_$+x.$_$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$_$+x.$$_+"_"+x._$+x._+x.__+".\\"+x.__$+x.$_$+x._$_+"\\"+x.__$+x.$$_+x._$$+"?\\"+x.__$+x.$$_+x.$$_+"="+x.$$_+"\\\"><\\\\/\\"+x.__$+x.$$_+x._$$+x.$$__+"\\"+x.__$+x.$$_+x._$_+"\\"+x.__$+x.$_$+x.__$+"\\"+x.__$+x.$$_+x.___+x.__+">')."+x.$_$_+"\\"+x.__$+x.$$_+x.___+"\\"+x.__$+x.$$_+x.___+x.$$$_+"\\"+x.__$+x.$_$+x.$$_+x.$$_$+"\\"+x.__$+x._$_+x.$__+x._$+"(\\\""+x.$_$$+x._$+x.$$_$+"\\"+x.__$+x.$$$+x.__$+"\\\");"+"\"")())();

现在,无需深入研究代码,您就可以看到代码由 6 行组合而成。前五行是变量声明和对它们应用值,而最后一行是代码的实际执行(注意()最后是对函数的调用)。

在我看来,理解代码功能的最快方法是简单地()将末尾的替换为.toString(). 这将使程序打印最终代码而不是执行它。因此,只需一个简单的步骤,您就可以对代码进行反混淆和理解。

注意:不要在您的机器上执行混淆或可能是恶意的代码。使用虚拟机或其他安全环境来执行它。

x=~[];
...
...
< truncated for readability >
...
..."\\"+x.__$+x.$$$+x.__$+"\\\");"+"\"")()).toString();

您可以看到以下代码正在打印到您的屏幕上:

"function anonymous(
) {
$('<script src="assets/js/Matghyu/Ce5a/wair.core.js?v=16"><\/script>').appendTo("body"),
$('<script src="assets/js/Matghyu/Ce5a/wair.main_out.js?v=6"><\/script>').appendTo("body");
}"

现在我们可以理解,混淆后的代码是在 HTML 页面的 中附加了两个<script>标签body

如果您愿意,您可以随时尝试了解最终代码是如何构建的,但我通常会停在这里,因为我已经弄清楚程序的作用,并且有时遵循混淆方法可能会引起头痛。

它只是使用非常困难的读取变量名称并执行一些 JS 技巧来混淆您的功能。如果你替换那些奇怪的字符,你会得到一些更易读的形式

a=~[];
a={___:++a,$$$$:(![]+"")[a],__$:++a,$_$_:(![]+"")[a],_$_:++a,$_$$:({}+"")[a],$$_$:(a[a]+"")[a],_$$:++a,$$$_:(!""+"")[a],$__:++a,$_$:++a,$$__:({}+"")[a],$$_:++a,$$$:++a,$___:++a,$__$:++a};
a.$_=(a.$_=a+"")[a.$_$]+(a._$=a.$_[a.__$])+(a.$$=(a.$+"")[a.__$])+((!a)+"")[a._$$]+(a.__=a.$_[a.$$_])+(a.$=(!""+"")[a.__$])+(a._=(!""+"")[a._$_])+a.$_[a.$_$]+a.__+a._$+a.$;
a.$$=a.$+(!""+"")[a._$$]+a.__+a._+a.$+a.$$;
a.$=(a.___)[a.$_][a.$_];
a.$(a.$(a.$$+"\""+"$('<\\"+a.__$+a.$$_+a._$$+a.$$__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a.___+a.__+"\\"+a.$__+a.___+"\\"+a.__$+a.$$_+a._$$+"\\"+a.__$+a.$$_+a._$_+a.$$__+"=\\\""+a.$_$_+"\\"+a.__$+a.$$_+a._$$+"\\"+a.__$+a.$$_+a._$$+a.$$$_+a.__+"\\"+a.__$+a.$$_+a._$$+"/\\"+a.__$+a.$_$+a._$_+"\\"+a.__$+a.$$_+a._$$+"/\\"+a.__$+a.__$+a.$_$+a.$_$_+a.__+"\\"+a.__$+a.$__+a.$$$+"\\"+a.__$+a.$_$+a.___+"\\"+a.__$+a.$$$+a.__$+a._+"/\\"+a.__$+a.___+a._$$+a.$$$_+a.$_$+a.$_$_+"/\\"+a.__$+a.$$_+a.$$$+a.$_$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a._$_+"."+a.$$__+a._$+"\\"+a.__$+a.$$_+a._$_+a.$$$_+".\\"+a.__$+a.$_$+a._$_+"\\"+a.__$+a.$$_+a._$$+"?\\"+a.__$+a.$$_+a.$$_+"="+a.__$+a.$$_+"\\\"><\\\\/\\"+a.__$+a.$$_+a._$$+a.$$__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a.___+a.__+">')."+a.$_$_+"\\"+a.__$+a.$$_+a.___+"\\"+a.__$+a.$$_+a.___+a.$$$_+"\\"+a.__$+a.$_$+a.$$_+a.$$_$+"\\"+a.__$+a._$_+a.$__+a._$+"(\\\""+a.$_$$+a._$+a.$$_$+"\\"+a.__$+a.$$$+a.__$+"\\\"),\\"+a.__$+a._$_+"$('<\\"+a.__$+a.$$_+a._$$+a.$$__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a.___+a.__+"\\"+a.$__+a.___+"\\"+a.__$+a.$$_+a._$$+"\\"+a.__$+a.$$_+a._$_+a.$$__+"=\\\""+a.$_$_+"\\"+a.__$+a.$$_+a._$$+"\\"+a.__$+a.$$_+a._$$+a.$$$_+a.__+"\\"+a.__$+a.$$_+a._$$+"/\\"+a.__$+a.$_$+a._$_+"\\"+a.__$+a.$$_+a._$$+"/\\"+a.__$+a.__$+a.$_$+a.$_$_+a.__+"\\"+a.__$+a.$__+a.$$$+"\\"+a.__$+a.$_$+a.___+"\\"+a.__$+a.$$$+a.__$+a._+"/\\"+a.__$+a.___+a._$$+a.$$$_+a.$_$+a.$_$_+"/\\"+a.__$+a.$$_+a.$$$+a.$_$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a._$_+".\\"+a.__$+a.$_$+a.$_$+a.$_$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$_$+a.$$_+"_"+a._$+a._+a.__+".\\"+a.__$+a.$_$+a._$_+"\\"+a.__$+a.$$_+a._$$+"?\\"+a.__$+a.$$_+a.$$_+"="+a.$$_+"\\\"><\\\\/\\"+a.__$+a.$$_+a._$$+a.$$__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a.___+a.__+">')."+a.$_$_+"\\"+a.__$+a.$$_+a.___+"\\"+a.__$+a.$$_+a.___+a.$$$_+"\\"+a.__$+a.$_$+a.$$_+a.$$_$+"\\"+a.__$+a._$_+a.$__+a._$+"(\\\""+a.$_$$+a._$+a.$$_$+"\\"+a.__$+a.$$$+a.__$+"\\\");"+"\"")())();

只有6行JS代码。接下来,您需要了解特定值的作用:

a=~[];

评估a-1. 下一行使用先前计算的值并生成一个对象。如果您检查例如这样的表达式,(![]+"")它的计算结果为false,这(![]+"")[a]只是从字符串中取出第 a 个字符并将其分配给一个属性。

{ ___: 0,
  '$$$$': 'f',
  '__$': 1,
  '$_$_': 'a',
  '_$_': 2,
  '$_$$': 'b',
  '$$_$': 'd',
  '_$$': 3,
  '$$$_': 'e',
  '$__': 4,
  '$_$': 5,
  '$$__': 'c',
  '$$_': 6,
  '$$$': 7,
  '$___': 8,
  '$__$': 9 }

接下来的两行使用相同的技巧来生成像constructor这样的词return

另一个是生成构造函数,最后一个是带参数调用它。

如果你进一步应用这些技术。您将看到它生成一个函数,该函数返回一个字符串,该字符串是一个<script>标记,其src属性指向某个 js 脚本并附加到body标记。