🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。
前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:猿人学WEB题目专解 ,提供猿人学WEB题目总计20题的解题思路与方法,如有讲述错误,请不吝赐教。
想看往期历史文章,可以浏览此博文: 历史文章目录
,后续所有文章发布都会同步更新此博文~
题目网址
题目详情
让我们找出 胜点最高 的召唤师的 姓名。
题目思路
这一题是字体加密题,所有胜点数据全都被不知名字符代替:
返回了这不知名字符的 value
和 woff
数据:
这 woff
自然是经过 base64
加密后的 .woff
文件字节。
我们 base64.b64decode
后,使用 fontTools.ttLib.TTFont
将 woff
数据转换成 xml
数据,再用 BeautifulSoup
的 xml
树解析:BeautifulSoup(open(f'q7_{index}.xml', 'r', encoding='utf-8').read(), 'xml').find('GlyphOrder').find_all('GlyphID')
。
打开我们的 xml
文件,映入眼帘的是:
当我以为这题简简单单,打算直接解决他的时候,意外发生了:
可以很明显的看出来,相同数字的地方,解出来也是相同数字,但 0-9
的映射完全是乱的!
我就知道,这题没那么简单,再看 xml
文件,上面有一行小提示:<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
仅给人看,解析时忽略!
只能往下看:
这倒挺像是用描点来绘画数字的,我们获取到这里所有的信息看看:
把所有的 01
放在一个字符串里看看:
重新访问一次看看:
再重新访问一次看看:
有没有发现什么规律?
没错,值是固定的,我们可以根据值,看出他所代表的数字,有两种看法:
第一种选一次,对照 value
和真实的值,然后看出每个的对应关系。
第二种先执行一次下载 woff
文件,然后打开 在线解析woff文件 网站,上传我们的 woff
文件,即可知道映射关系:
总之,我们得到的映射字典是这样的:
PIXELS = {
'111': '',
'10100100100101010010010010': '0',
'1001101111': '1',
'100110101001010101011110101000': '2'