JSfuck原理解析一——基础原理

  本系列博客是对jsfuck代码的一些分析,暂定为三篇。第一篇为jsfuck基础原理,第二篇为官方案例分析,第三篇为源码解析。

  不出意外的话就是这三篇,我实在是比较懒,第一篇过了一年半才去写第二篇,但愿第三篇不会再拖了……

  如果你也有对知识的渴望,可以直接访问原作者的GitHub:https://github.com/aemkei/jsfuck 原作者其实已经解释很清楚了。不过学习嘛,自己分析才有乐趣。

  那下面开始正文:

  什么是jsfuck?

  想象一下自己第一次见到代码的样子,满屏的奇怪字符?WTF?而当我看到jsfuck的时候,再次体会到了这种感觉。请看下面的代码:

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!&#
JSFuck 可以让你只用 6 个字符 []()! 来编写 JavaScript 程序。例如你想用 JSFuck 来实现 alert(1) 代码如下:[][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]][([][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]] [])[ [[! [] ! [] ! []]]] ([][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]] [])[ [[! [] ! [] ! [] ! [] ! [] ! []]]] ([][[]] [])[ [[ ! []]]] (![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[ ! []]]] ([][[]] [])[ [[ []]]] ([][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ []]]] ([][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]] [])[ [[! [] ! [] ! [] ! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]]((![] [])[ [[ ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]] (!![] [])[ [[ []]]] ([][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]] [])[ [[ ! []]] [[! [] ! [] ! [] ! [] ! []]]] [ ! []] ([][(![] [])[ [[ []]]] ([][[]] [])[ [[! [] ! [] ! [] ! [] ! []]]] (![] [])[ [[! [] ! []]]] (!![] [])[ [[ []]]] (!![] [])[ [[! [] ! [] ! []]]] (!![] [])[ [[ ! []]]]] [])[ [[ ! []]] [[! [] ! [] ! [] ! [] ! [] ! []]]])()其他一些基本的表达:false       =>  ![]true        =>  !![]undefined   =>  [][[]]NaN         =>   [![]]0           =>   []1           =>   ! []2           =>  ! [] ! []10          =>  [ ! []] [ []]Array       =>  []Number      =>   []String      =>  [] []Boolean     =>  ![]Function    =>  []["filter"]eval        =>  []["filter"]["constructor"]( CODE )()window      =>  []["filter"]["constructor"]("return this")() 标签:JSFuck
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值