网上有很多关于字体火星字体转换器,火星文字转换器的知识,也有很多人为大家解答关于字体转换器火星文的问题,今天刺梨占星网(nayona.cn)为大家整理了关于这方面的知识,让我们一起来看下吧!
本文目录一览:
1、字体转换器火星文
2、什么是星火文字?
字体转换器火星文
先言
自定义字体库在反爬工程里面算比较独树一帜的,对我个人而言也算比较有趣的一种。不同于枯燥的JS混淆破解和逆向接口破解,我个人还是希望出现更duō的类似于这种基于计算机原理的反爬内容,这极大的展示了一个技术公司的创造性。
猫眼爬虫
下面可以看看猫眼榜单的加密内容(url= https://piaofang.maoyan.com/?ver=normal)。下图可以明显看出浏览器渲染的效果是正常的,但是如果你试图复制粘贴网页的关键内容数字时,你会发现你复制出了乱码,并且在HTML文本中数据并不是数字,而是一串类似于:\\ue5a3.\\ue689 这样的unicode编码。
猫眼加密字符
问题来了,为何浏览器渲染后数据是正常的,则和下面的一串代码有关(试图从代码中选择不合理的数据找到关键这是爬虫工程师必备的技能)。这一串代码并不是标准的字体库的链接文件,想看正常的自定义字体库格式可以到我们的另外一个朋友之家。,请看下图
猫眼字体库加密内容
汽车之家字体库链接
这里必须提一点,爬虫最有趣的在于发现对方网站反爬工程师的漏洞和思维(可能最难受的也在这里,你想几天都不知道你的问题出在哪里),仔细观察,发现base64后面是跟着一串密文,而base64 又是一种加密方式,那么字体库内容已经很明显了(由于网上有该M站的破解,我这里简单说下PC站的破解)。第一步把加密数据RE匹配出来,解密密文(这里有个大坑,解码为bytes编码),把解密后的内容写入一个TTF文件,这个文件就是字tǐ库的内容。
接下来你面对的是一个TTF文件,文件内包含自定义的字体信息。如何将字体库的内róng和HTML文档的自定义字符形成映射关系是必须要完成的一步。这里推荐一个PYTHON的库fontTools,可以解析内容,并输出对应的映射关系。猫眼的字体都为数字,较为简单,且字体内容固定,我这里就不在赘述了。
from fontTools.ttLib import TTFontfont = TTFont(\\\’test.ttf\\\’) #打开本地的ttf文件bestcmap = font[\\\’cmap\\\’].getBestCmap()print(bestcmap)汽车之家字体库破解思路
上面为猫眼的自定义字体库的破解,感觉除了BASE64加密密文之外似乎只需要按部就班破解就行。接下来迎来本文的核心,先看图。
38个常用字符
找不同
直接把字体库内容放出来的原因是别人根本不怕你爬字体文件,因为除了常用的38个字形状一样,你很难找到字体库的固定的映射关系,猫眼由于根本没对字体做太多的变形,导致TTF文件内编码基本一致,但是之家的却完全不一样。看到这里,我决定接招了(很好玩不是吗?)。面对未知的文件,我试图寻找更加底层的规律(名侦探毛利小五郎已上线),我将TTF文件转换成XML,让字体库内容可观看,操作如下。
font = TTFont(\\\’test.ttf\\\’)font.saveXML(\\\’test.html\\\’)
通过对比两个不同TTF文件的异同,且由于在浏览器渲染出来的字符是看起来是差不多的(由于计算机的底层,细微化的变化肉眼可能识别不出来差别),找到了规律(图我放在MAC里面了,没带回家。。。明天放),字体的渲染通过不同位置的(实心点或者空心点)点线和一定的规律连接起来,形成一个看起来像个汉字的字符。只需要抽象出该内容的特征值,即可识别出这38个字符de映射关系。
中文:下 字体内容
最后:不得不佩服反爬工程师的脑洞和精湛的技术,出于对他们的尊重我不能放出破解的源码(我不能让他们加班啊,而且之家其他端的反爬都是JS混淆,和接口加密,一点都不好玩),其实没有一定的技术也很难复现PC站破解的整套流程(还有几个坑和字体内容特征抽象都是比较基础的)。写这些主要是想让对爬虫感兴趣的人都这个行业多少了解一点(说相爱相杀也不为过)。
如果有大佬发现有问题的地方,欢迎批评指正,不用说,我知道我肯定是最菜的。
什么是星火文字?
火星文,可解作火星人的文字。随着互联网的普及,年轻网民为求方便或彰显个性,开始大量使用同音字、音近字、特殊符号来表音的文字。
火星文转换器怎么用?
通过算法替换文字,文字可以是简体或者繁体的中文,也可以是英文。例如“火星文”转换后就是“焱暒妏”。 很多字典里是找不到的,它们多为两个字的偏旁组合或者是汉字的部分笔画,
以上就是关于字体火星字体转换器,火星文字转换器的知识,后面我们会继续为大家整理关于字体转换器火星文的知识,希望能够帮助到大家!
联系我们
关注公众号