官方例子分析
上一篇我们已经解释了jsfuck的基本原理,简单来说,如果我们想要用jsfuck加密一段可执行代码,那么代码最后应该是这样的类型:
Function(code)()
在上一篇中我们提到,Function()()这一段可以转换成如下代码:
[]["filter"]["constructor"]( )()
那么,我们就得到了一段完全由“ ()+[]! ”与字符串组合的代码,接下来我们只需要把字符串也加密成“ ()+[]! ”就可以了!
所需要加密的字符串,包含了所有可显示字符在此,我们依然拿“ alert(1) ”来举例:
字符串“ alert(1) ”可拆解为a、l、e、r、t、(、1、),八个字符,这些字符我们很容易在上一篇文章中找到:
1 => +!+[]
false => ![]
true => !![]
由上可得:
'a' ==