Function( "".replace(/.{8}/g, function(u){ return String.fromCharCode(parseInt(u.replace(/\u200c/g,1).replace(/\u200d/g,0),2)) })
)
上面的代码和下面的代码等价
function anonymous() { location.href.indexOf("helloalibaba")==-1&&(location.href="http://www.alictf.com/"); }
求解!!!很是不懂!!!
需要拆分来看:
1、"".replace(/.{8}/g,...) ,这个正则替换会产生84个字符,可以用"".match(/.{8}/g).length看结果
2、u.replace(/\u200c/g,1).replace(/\u200d/g,0) ,这段,把特定字符替换为0和1。
3、parseInt('xxx',2) ,将二进制转换为十进制
4、fromCharCode,将十进制数字转换为字符
5、Function("function code...") 创建匿名函数,所以结果就如你所看到的~
牛叉
@519740105: 你是我见过长分最快的...牛叉~~
@幻天芒: 你都六级了。
@519740105: @幻天芒:两位大牛好
@519740105: 玩了1年了。
@happydaily: 我只是玩得久一点,大家好才是真的好!
@519740105: @幻天芒 :
@happydaily:
我醉了
@艾斯泽: 抱歉,用match函数查看不到结果,可以用replace函数来查看。
看不懂,不应该是这个结果。是否你有哪个地方搞错?能弄到出处不?
膜拜大神
可以参看这位大神的一篇博客:http://ucren.com/blog/archives/549
十分感谢!!!!