过CloudFlare 5秒盾与Fyde OS体验
Contents
说在前面
首先令人感到有些沮丧的是,上一篇提到的布卡搜索由于布卡漫画彻底下架了想看的漫画,于是被我直接下掉了。
写这篇的原因主要是最近还有一些新的体验想要分享一下,前几天一直想写一篇来着的,可是最近考试,再加上考完了放松了几天,于是拖到了现在。
过CloudFlare的防护
首先值得一提的就是之前收藏的CloudFlare五秒防护这个帖,在8月底终于被我用Python实现了。
不得不说CloudFlare的这种防护方法确实有一些明显的效果,虽然被解析之后还是可以被爬虫爬到,但还是需要等待4秒多的时间,不然会直接被拦在CDN之前,影响不到源服务器。
解析方法
那么下面来看一下如何解析一段CF防护页面的代码。
import re
def findstr(rule, string):
find_str = re.compile(rule)
return find_str.findall(string)
def decodeJSCode(code):
code = code.replace('!![]', '1').replace('!+[]', '1').replace('(+[])', '(0)').replace('+((', '(').replace('))', ')').replace('+[]', '').split('/')
fnumu = ""
fnumd = ""
for num in findstr('\(.*?\)', code[0].replace('+[]', '')):
fnumu += str(eval(num))
for num in findstr('\(.*?\)', code[1].replace('+[]', '')):
fnumd += str(eval(num))
return int(fnumu)/int(fnumd)
code = '+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]))/+((+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]))'
print(decodeJSCode(code))
我们首先可以在浏览器里运行一下code
后面的值,可以得到结果4.380966109717446
。
再运行一下上面那段Python代码,得出4.380966109717446
,完全一致。
下面来初步解释一下是怎么解析的。
首先:
+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]))/+((+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]))
经过一番替换,得到:
(1+1+1+1+1+1+1+1)+(1+1+1+1+1)+(1+1+1+1+1+1+1+1)+(1+1+1+1+1)+(1+1+1+1+1+1+1+1+1)+(1+1+1+1+1+1+1+1+1)+(1+1+1+1+1)+(0)+(1+1+1)/(+1)+(1+1+1+1+1+1+1+1+1)+(1+1+1+1+1)+(1+1+1+1+1+1+1+1+1)+(1+1+1+1+1+1+1+1)+(1+1+1+1)+(0)+(1+1+1+1+1)+(1+1+1+1+1)
这其实就是上面帖子提到的内容,仔细看看就知道了。
但在JS中这个实际上是文本型的相加,所以对这个式子进行运算时,每个括号代表着一位数。
所以上面那一串实际上应该是:
858599503/195984055 = 4.380966109717446
这两个数字相除的结果,就是JS计算得出的结果。
之后
解决了这个问题之后,剩下的实际上就是怎么对文本进行处理,以达到和JS运算结果一致的问题,详细代码可以看我这个Github仓库。
Fyde OS 初体验
之前看到别人说FydeOs,上个礼拜正好有空试了一下,至于尝试的原因有点不记得了。
可能是因为官网上写着支持 Win + Linux + 安卓
,让我有点心痒痒了。总之就是拿之前Ebay薅来的32G的U盘写入了FydeOS。
由于时间太久,也忘记留截图了,总之我是初步试了一下。
优点
首先就是支持安卓应用,感觉非常不错,我给装了个AIDE,跑起来挺正常的,其他一些App也工作良好,兼容性实际还是不错的。
然后是Linux,这个实际上是Chrome OS的功能,没什么好说的,和原生Chrome OS基本一致的体验。
最后就是所谓的Windows,实际上是通过在安卓上装CrossOver二次模拟,之前运行了一下Pandownload,除了缺字库(字库可以下载)之外基本上运行没什么问题,就是操作起来太繁琐了,实在不如直接用Win。
但这个实际上是直接在U盘上运行的系统,所以到哪儿一插就完事儿,我觉得这一点也比较适合轻办公的特点吧。
缺点
下面说说几个缺点,首先是Chrome OS原生应用太少,全靠安卓撑门面,虽然有魔法上网可以在Chrome Store里下载应用,但FydeOS内部空间太少,想装个VLC提示容量不够。
第二个就是既然内置了Google Play,那你就应该让人用啊。我给整了半天的魔法上网,打开了Play Store,然后提示设备未验证,还得自己去谷歌提交GSF ID才解决了问题。具体解决方案参考这篇小众软件的帖子。
第三就是U盘的问题,虽然说非常方便,但U盘作为U盘本身的功能就废了。如果在Windows下面插入U盘,还直接吃掉十几个盘符,这个不是非常令人满意。
如果要像以前的PE系统那种,分区之后,该不显示的不显示,然后还有一部分能显示出来做U盘使用那就更好了。
总结
总体上来说,我个人还是比较满意FydeOS的,毕竟相比虚拟机来说,实体机运行更快捷,而且是直接运行于U盘,并不占用硬盘,且即插即用,自身的定位还是非常准确的。
不过Fyde OS自家出的的那款笔记本我觉得还是不太行,毕竟Fyde自身还是太菜了,接下来应该更加注重开发基于Chrome OS的应用,而不是整那些花头,好用才是硬道理。