成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

《Flappy Pig》被高手破解 “無敵”代碼分析

開發 前端
《Flappy Pig》被高手破解,在@Laix的留言中,有這么一段“奇怪的代碼”……無敵了,各位牛X的js大神來看看。

今天早晨剛起來,看到一個朋友(@Laix)的留言,他留了一段“奇怪的代碼”,說在控制臺執行會發生神奇的事情:

  1. 1._=~[];_={___:++_,$$$$:(![]+"")[_],__$:++_,$_$_:(![]+"")[_],_$_:++_,$_$$:({}+"")[_],$$_$:(_[_]+"")[_],_$$:++_,$$$_:(!""+"")[_],$__:++_,$_$:++_,$$__:({}+"")[_],$$_:++_,$$$:++_,$___:++_,$__$:++_};_.$_=(_.$_=_+"")[_.$_$]+(_._$=_.$_[_.__$])+(_.$$=(_.$+"")[_.__$])+((!_)+"")[_._$$]+(_.__=_.$_[_.$$_])+(_.$=(!""+"")[_.__$])+(_._=(!""+"")[_._$_])+_.$_[_.$_$]+_.__+_._$+_.$;_.$$=_.$+(!""+"")[_._$$]+_.__+_._+_.$+_.$$;_.$=(_.___)[_.$_][_.$_];_.$(_.$(_.$$+"\""+_.$$$$+(![]+"")[_._$_]+_.$_$_+"\\"+_.__$+_.$$_+_.___+"\\"+_.__$+_.$$_+_.___+"\\"+_.__$+_.$$$+_.__$+".\\"+_.__$+_.$_$+_.__$+"\\"+_.__$+_.$_$+_.$$_+"\\"+_.__$+_.$_$+_.__$+_.__+"();"+"\"")())(); 

這一坨亂七八糟的代碼,甚至連個字母都沒有。我還是打開Flappy Pig試了一下(chrome或者firefox打開,F12呼出開發者工具,輸入上面的代碼,回車):

 

之后按空格鍵開始游戲~~~~~神奇的事情果然發生了,小豬無敵了,撞在柱子上不會死~~~~~~

下面分析下這位高手是怎么做到的

首先把那段奇怪的javascript“美化”一下:

  1. _ = ~ [];  
  2. _ = {  
  3. ___: ++_,  
  4. $$$$: (![] + "")[_],  
  5. __$: ++_,  
  6. $_$_: (![] + "")[_],  
  7. _$_: ++_,  
  8. $_$$: ({} + "")[_],  
  9. $$_$: (_[_] + "")[_],  
  10. _$$: ++_,  
  11. $$$_: (!"" + "")[_],  
  12. $__: ++_,  
  13. $_$: ++_,  
  14. $$__: ({} + "")[_],  
  15. $$_: ++_,  
  16. $$$: ++_,  
  17. $___: ++_,  
  18. $__$: ++_  
  19. };  
  20. _.$_ = (_.$_ = _ + "")[_.$_$] + (_._$ = _.$_[_.__$]) + (_.$$ = (_.$ + "")[_.__$]) + ((!_) + "")[_._$$] + (_.__ = _.$_[_.$$_]) + (_.$ = (!"" + "")[_.__$]) + (_._ = (!"" + "")[_._$_]) + _.$_[_.$_$] + _.__ + _._$ + _.$;  
  21. _.$$ = _.$ + (!"" + "")[_._$$] + _.__ + _._ + _.$ + _.$$;  
  22. _.$ = (_.___)[_.$_][_.$_];  
  23. _.$(_.$(_.$$ + "\"" + _.$$$$ + (![] + "")[_._$_] + _.$_$_ + "\\" + _.__$ + _.$$_ + _.___ + "\\" + _.__$ + _.$$_ + _.___ + "\\" + _.__$ + _.$$$ + _.__$ + ".\\" + _.__$ + _.$_$ + _.__$ + "\\" + _.__$ + _.$_$ + _.$$_ + "\\" + _.__$ + _.$_$ + _.__$ + _.__ + "();" + "\"")())(); 

可以看出,其實_是個變量(我們平時不會這么命名變量),~ []就是-1(大家可以執行下,不要問我為什么,我還是菜鳥,javascript 基礎不扎實,還沒徹底搞明白),以此類推,代碼可以進一步“美化”(雖然這一步跨的有點大):

  1. _ = ~ [];  
  2. _ = {  
  3. $$$: 7  
  4. $$$$: "f" 
  5. $$$_: "e" 
  6. $$_: 6  
  7. $$_$: "d" 
  8. $$__: "c" 
  9. $_$: 5  
  10. $_$$: "b" 
  11. $_$_: "a" 
  12. $__: 4  
  13. $__$: 9  
  14. $___: 8  
  15. _$$: 3  
  16. _$_: 2  
  17. __$: 1  
  18. ___: 0  
  19. };  
  20. _.$_ = "constructor";  
  21. _.$$ = "return" 
  22. _.$ = (0)[constructor][constructor];  
  23. 0["constructor"]["constructor"](  
  24. 0["constructor"]["constructor"](  
  25. "flappy.init ()" 
  26. )()  
  27. )(); 

最關鍵的代碼就是后面的(0)[constructor][constructor],他實質上是執行了flappy.init (),關于(0)[constructor][constructor]的分析看這里,那么我們再次打開 flappy pig,打開開發者工具,執行flappy.init ()

沒錯,“小豬”無敵了。

總結:

1、其實核心的就是執行一句話flappy.init (),這是我的疏忽,再一次初始化游戲,會產生 bug,小豬就無敵了。

2、這位高手用很復雜代碼,各種拼湊,讓我這種菜鳥各種看不懂的執行了flappy.init ()

3、我的 javascript 還是沒學懂

4、@Laix 你還真是頑皮啊。

原文鏈接:http://keenwon.com/1021.html

責任編輯:林師授 來源: KeenWon.com
相關推薦

2021-07-21 09:00:00

面部識別AI安全

2020-12-04 10:36:12

OpenClinic漏洞破解

2012-12-18 11:55:38

2017-06-01 16:42:16

2009-12-07 15:27:02

2009-12-10 09:30:32

2022-08-06 13:04:27

LinuxSHH

2009-11-05 14:33:13

2020-02-06 10:20:19

硬件黑客技術

2009-04-27 21:32:18

2025-01-20 20:44:21

2009-12-08 10:52:56

2012-05-08 09:57:35

WiFi

2012-11-14 14:39:50

2024-12-09 13:11:22

2015-10-19 11:44:00

2017-09-19 09:28:55

2015-10-19 10:29:33

2021-04-20 14:45:22

人臉識別安全技術

2019-10-11 09:45:19

代碼開發密碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99精品久久久久子伦 | 99re热精品视频 | 日本二区在线观看 | 欧美成人免费在线视频 | 精品久久久久久18免费网站 | 91se在线| 亚洲成人二区 | 欧美一级久久 | 欧美在线视频a | 视频一区二区三区在线观看 | 成人国产精品入口免费视频 | 亚洲视频免费观看 | 国产成人精品久久二区二区91 | 91精品久久久久久久久久入口 | 国产激情在线播放 | 国产综合精品一区二区三区 | 国产96色在线 | 成人免费一区二区三区牛牛 | 欧美一区二区三区精品 | 国产精品高潮呻吟久久久久 | 久久国产精品久久久久久 | 91精品国产一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 欧美日韩综合一区 | 干干干日日日 | 在线看一区二区 | 免费久久精品视频 | 久久er精品 | 亚洲 欧美 日韩在线 | 一区二区高清 | 欧美久久国产 | 一区二区三区四区免费视频 | 欧美在线一区二区三区 | 欧美h版 | 久久亚洲国产精品日日av夜夜 | 免费看片国产 | 午夜影院在线观看版 | 欧美在线视频一区二区 | 91精品国产综合久久久密闭 | 色综合视频 | 久久一区视频 |