美文网首页
自定义字体的破解方法

自定义字体的破解方法

作者: format_b1d8 | 来源:发表于2021-02-24 10:58 被阅读0次

首先,什么是自定义字体

1. 自定义字体,就是为了防止爬虫获取数据,对某些重要的数据进行自定义字体的方式进行处理。
爬虫获取的数据是类似于这样的(以猫眼电影为例):
<span class='score-num'><span class="stonefont">&#xf19b;&#xf4ef;&#xe137;.&#xe343;万</span>人评分</span>
多少人评分这里应该是268.1万人评分,这里进行了自定义字体的方式进行的处理。

自定义字体分为动态和静态两种

动态自定义字体就是每次加载字体的值都不同,静态自定义字体就是固定的字体对应固定的字符。
而猫眼电影原来是动态自定义字体,最近换成了静态自定义字体。
相对动态自定义字体来说,静态自定义字体很好解决。
在这里我们看到
&#xf19b;&#xf4ef;&#xe137;.&#xe343;  分别对应着268.1
也就是说&#xf19b; 是2,&#xf4ef;是6,&#xe137;是8,&#xe343;是1
那么只需要做一个映射关系,获取到的数据进行字符串替换即可。

动态自定义字体的破解

动态自定义字体相对来说比较难破解,这需要花费时间来进行一一对比规律。
毕竟无论如何,不可能说这次生成的字和下次生成的字不一样,
他一定是按照某个规律,不可能超过这个规律来生成字体的。
注意:自定义字体文件后缀名一般是.woff和.ttf  ,所以可以利用全局搜索的方式查看在哪里。
找到了字体文件之后,可以查看他的生成规律。
分享一个在线查看字体的网站:
http://blog.luckly-mjw.cn/tool-show/iconfont-preview/index.html
image.png

注意红色箭头标注的,很重要。

  • 接下来就该分析字体了。但是问题是woff文件无法读取也无法查看源码怎么办?
    Python中有一个处理字体的类库,叫做fontTools
安装的话网上很多教程,就不赘述了。
安装好这个类库之后,使用它对woff/ttf进行转换,转为xml格式的文件

xml文件类似于html文件,有html基础的就应该能读懂。

from fontTools.ttLib import TTFont
fonts = TTFont(r"字体文件路径")
fonts.saveXML("文件.xml")

生成的xml文件打开大概是这样的:


image.png

注意红框选中的内容,是不是很眼熟?没错,就是在线预览那里箭头指向的值。

找到值之后,接下来就是根据name来定位对应数字在哪里
比如数字6对应:uniF4EF
那么就在xml文件中搜索uniF4EF

搜索结果:


image.png
上面的图片即是搜索结果。
我们发现,9是由两个contour组成的,而每个contour中都有n个pt标签,
pt标签又是由x,y,on组成的。于是联想到了坐标轴。
pt就是坐标轴上的每一个点。
于是利用坐标轴画出数据,最终连成了一个数字9。
1569561573066.png

接下来是找规律,这个过程很漫长很痛苦,不过如果知道规律的话,其实也不难了。

一般来说找规律两种方式:
1. 按照contour的数量划分组,按照pt的数量划分数字取值范围,
最后找出差值的波动范围阈值,用于写映射关系,如猫眼
2. 根据x,y的变化规律来找出定理。
如58网,需要分析x2,x1,y2,y1的差值,
而差值固定就是某个字符的值,如(1588, 0): '男', (868, 0): '王', (825, 367)

找到规律之后,我们就可以进行字符替换了,其中&#x 就是无用字符,直接舍弃就好,其他的按照映射方式进行一一替换即可。


image.png

好了,以上就是自定义字体的破解方法,欢迎大家评论,转载,点赞~

相关文章

  • 自定义字体的破解方法

    首先,什么是自定义字体 自定义字体分为动态和静态两种 动态自定义字体的破解 注意红色箭头标注的,很重要。 接下来就...

  • 猫眼@face-font破解

    猫眼字体动态加载的破解方法分为这几个步骤:准备工作,获取页面内容: 1.下载网页的font字体包,作为对照字体文件...

  • iOS开发之自定义字体

    iOS 开发中文字默认使用的是系统的字体,但如果需要自定义字体,方法也很简单。 实现步骤 下载需要的字体,并将字体...

  • 18、自定义字体

    自定义字体,又叫服务器字体,可以使得我们的页面字体多元化,更有特色,具体使用方法也很简单 字体的格式: .ttf ...

  • Android使用自定义字体

    ​ 安卓开发使用自定义字体应该已经是司空见惯了,今天就来介绍一下如何使用自定义字体的方法。 准备工作...

  • (iOS - Objective-C ) UIFont - 自定

    2018.9.19 参考:iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc字体文件) 没办法,就是...

  • getDimension()、getDimensionPixel

    我们在自定义View的时候,通常会指定自定义View的字体大小,然后我们获取字体大小的时候,可以有三个方法供选择。...

  • iOS App导入自定义字体

    原文iOS App导入自定义字体 需求 iOS项目中需要导入第三方字体,来进行显示字体样式。 实现方法 1 先找到...

  • 字体设计 | 提高效率的小技巧

    01 前言 本文讲述一个提高字体设计效率的小技巧。 效果图如下: 02 制作方法 1.自定义字体的类型,字体大小,...

  • React Native iOS端 使用自定义字体时Unreco

    React Native iOS端 使用自定义字体时Unrecognized font family 解决方法:看...

网友评论

      本文标题:自定义字体的破解方法

      本文链接:https://www.haomeiwen.com/subject/ijfrfltx.html