乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > Python爬虫:WEB引入自定义字体库的破解(异端原创)-word字体库下载

Python爬虫:WEB引入自定义字体库的破解(异端原创)-word字体库下载

作者:乔山办公网日期:

返回目录:word文档

先言

自定义字体库在反爬工程里面算比较独树一帜的,对我个人而言也算比较有趣的一种。不同于枯燥的JS混淆破解和逆向接口破解,我个人还是希望出现更多的类似于这种基于计算机原理的反爬内容,这极大的展示了一个技术公司的创造性。

猫眼爬虫

下面可以看看猫眼榜单的加密内容(url= https://piaofang.maoyan.com/?ver=normal)。下图可以明显看出浏览器渲染的效果是正常的,但是如果你试图复制粘贴网页的关键内容数字时,你会发现你复制出了乱码,并且在HTML文本中数据并不是数字,而是一串类似于:. 这样的unicode编码。

Python爬虫:WEB引入自定义字体库的破解(异端原创)

猫眼加密字符

问题来了,为何浏览器渲染后数据是正常的,则和下面的一串代码有关(试图从代码中选择不合理的数据找到关键这是爬虫工程师必备的技能)。这一串代码并不是标准的字体库的链接文件,想看正常的自定义字体库格式可以到我们的另外一个朋友之家。,请看下图

Python爬虫:WEB引入自定义字体库的破解(异端原创)

猫眼字体库加密内容

Python爬虫:WEB引入自定义字体库的破解(异端原创)

汽车之家字体库链接

这里必须提一点,爬虫最有趣的在于发现对方网站反爬工程师的漏洞和思维(可能最难受的也在这里,你想几天都不知道你的问题出在哪里),仔细观察,发现base64后面是跟着一串密文,而base64 又是一种加密方式,那么字体库内容已经很明显了(由于网上有该M站的破解,我这里简单说下PC站的破解)。第一步把加密数据RE匹配出来,解密密文(这里有个大坑,解码为bytes编码),把解密后的内容写入一个TTF文件,这个文件就是字体库的内容。

接下来你面对的是一个TTF文件,文件内包含自定义的字体信息。如何将字体库的内容和HTML文档的自定义字符形成映射关系是必须要完成的一步。这里推荐一个PYTHON的库fontTools,可以解析内容,并输出对应的映射关系。猫眼的字体都为数字,较为简单,且字体内容固定,我这里就不在赘述了。

from fontTools.ttLib import TTFont
font = TTFont('test.ttf') #打开本地的ttf文件
bestcmap = font['cmap'].getBestCmap()
print(bestcmap)

汽车之家字体库破解思路

上面为猫眼的自定义字体库的破解,感觉除了BASE64加密密文之外似乎只需要按部就班破解就行。接下来迎来本文的核心,先看图。

Python爬虫:WEB引入自定义字体库的破解(异端原创)

38个常用字符

Python爬虫:WEB引入自定义字体库的破解(异端原创)

找不同

直接把字体库内容放出来的原因是别人根本不怕你爬字体文件,因为除了常用的38个字形状一样,你很难找到字体库的固定的映射关系,猫眼由于根本没对字体做太多的变形,导致TTF文件内编码基本一致,但是之家的却完全不一样。看到这里,我决定接招了(很好玩不是吗?)。面对未知的文件,我试图寻找更加底层的规律(名侦探毛利小五郎已上线),我将TTF文件转换成XML,让字体库内容可观看,操作如下。

font = TTFont('test.ttf')
font.saveXML('test.html')

通过对比两个不同TTF文件的异同,且由于在浏览器渲染出来的字符是看起来是差不多的(由于计算机的底层,细微化的变化肉眼可能识别不出来差别),找到了规律(图我放在MAC里面了,没带回家。。。明天放),字体的渲染通过不同位置的(实心点或者空心点)点线和一定的规律连接起来,形成一个看起来像个汉字的字符。只需要抽象出该内容的特征值,即可识别出这38个字符的映射关系。

Python爬虫:WEB引入自定义字体库的破解(异端原创)

中文:下 字体内容

最后:不得不佩服反爬工程师的脑洞和精湛的技术,出于对他们的尊重我不能放出破解的源码(我不能让他们加班啊,而且之家其他端的反爬都是JS混淆,和接口加密,一点都不好玩),其实没有一定的技术也很难复现PC站破解的整套流程(还有几个坑和字体内容特征抽象都是比较基础的)。写这些主要是想让对爬虫感兴趣的人都这个行业多少了解一点(说相爱相杀也不为过)。

如果有大佬发现有问题的地方,欢迎批评指正,不用说,我知道我肯定是最菜的。

相关阅读

  • HTML5从入门到精通:第二章 HTML详解-word乘号

  • 乔山办公网word文档
  • word乘号,2.1.1 HTML历史版本像大多数软件、硬件一样,HTML发展至今,经历了几个版本,新增了许多HTML标记,同时也淘汰了一些标记,接下来介绍HTML在不同时期所对应的一些重要版本,具
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网