JSfuck原理解析二——官方例子分析

本文详细分析JSFuck加密技术,通过官方例子解释如何将代码转化为仅使用特定字符组成的等价形式。首先回顾JSFuck基本原理,然后演示如何加密字符串,包括将字符转换为" ()+[]! "的形式,最后展示如何获取括号并组合成完整加密代码的过程。
摘要由CSDN通过智能技术生成

官方例子分析

  上一篇我们已经解释了jsfuck的基本原理,简单来说,如果我们想要用jsfuck加密一段可执行代码,那么代码最后应该是这样的类型:

Function(code)()

  在上一篇中我们提到,Function()()这一段可以转换成如下代码:

[]["filter"]["constructor"]( )() 

  那么,我们就得到了一段完全由“ ()+[]! ”与字符串组合的代码,接下来我们只需要把字符串也加密成“ ()+[]! ”就可以了!

  所需要加密的字符串,包含了所有可显示字符在此,我们依然拿“ alert(1) ”来举例:

  字符串“ alert(1) ”可拆解为a、l、e、r、t、(、1、),八个字符,这些字符我们很容易在上一篇文章中找到:

1 => +!+[]

false => ![]  

true => !![]

  由上可得:

'a' == 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值