当前位置: 首页 > news >正文

猿人学题库13题—动态css字体加密 记录

猿人学题库13题—动态css字体加密

1.  首先 进入 浏览器的开发者工具抓包

    在 xhr 可以看到 ajax请求数据接口,返回的数据有一个 woff 键,这里就是 woff的base64格式

    请求获取 数据后 把 woff键的值 base64解码 保存为tff文件格式

2、安装库

这里需要用到fontTools库安装FontTools库非常简单,推荐使用Python的包管理工具pip进行安装。读者只需打开终端或命令提示符,输入以下命令即可:

pip install fonttools

安装完成后,可以通过以下Python代码检查是否安装成功:

import fontTools
print(fontTools.__version__)

如果控制台打印出FontTools的版本信息,则表示安装无误,我们可以继续进行下一步的FontTools探索之旅。

 3、解析 woff 文件 

保存 tff 格式后,用  from fontTools.ttLib import TTFont 读取,

在解析的过程可以先 保存为 xml 格式,查看数据

观察xml 文件发现最后 这部分 是 Unicode 编码是 排序好的,和数字排序是对应的,直接找规律。

每次请求获取 Unicode对应的数字值子典进去比对,就可以获取正确的数值了

核心代码

def SaveTff(res):new_font_name = "./tff/font_base.ttf"xml_font_name = "./tff/font_base.xml"font_data_after_decode = base64.b64decode(res['woff'])with open(new_font_name, 'wb') as f:f.write(font_data_after_decode)font = TTFont(new_font_name)font.saveXML(xml_font_name)extraNames = font.get('post').__dict__['extraNames']woff_dict = {}for index, val in enumerate(extraNames):if index < 9:num = index + 1else:num = 0woff_dict[val.replace('uni', '&#x')] = num# print(woff_dict)return woff_dict

http://www.xdnf.cn/news/148951.html

相关文章:

  • JavaScript性能优化实战(5):数据结构与算法性能优化
  • Python爬取天猫畅销榜接口的详细教程
  • Python基础语法:字符串格式化(占位拼接,精度控制,format()函数,快速格式化,表达式格式化)
  • dstream
  • 《深入浅出ProtoBuf:从环境搭建到高效数据序列化》​
  • python基础-requests结合AI实现自动化数据抓取
  • 文档编辑:reStructuredText全面使用指南 — 第三部分 进阶特性
  • 第四章 安全审计
  • HMI与组态,自动化的“灵珠”和“魔丸”
  • 【FastJSON】的parse与parseObject
  • Huffman(哈夫曼)解/压缩算法实现
  • 【多目标进化算法】常见多目标进化算法一览
  • 持久登录的存储
  • 在统信桌面操作系统上修改启动器中软件名称
  • Semantic Kernel也能充当MCP Client
  • PMIC PCA9450 硬件原理全解析:为 i.MX 8M 平台供电的“大脑”
  • 【EDA】Floorplanning(布局规划)
  • 基于自然语言处理的文本生成模型设计
  • Canvas入门教程!!【Canvas篇二】
  • 基于vue框架的电信用户业务管理系统的设计与实现8ly70(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 2025年高校辅导员考试题库及答案
  • 【科研绘图系列】R语言绘制区间点图(dot plot)
  • 【Python】保持Selenium稳定爬取的方法(防检测策略)
  • C语言中操作字节的某一位
  • GoWASM、Kotlin(KT)、RustWASM 反编译难度对比
  • java网络原理3
  • 运维打铁:Mysql 分区监控以及管理
  • Lesar: 面向 Lustre/Scade 语言的形式化模型检测工具
  • @Transactional的一点理解
  • 【C语言】动态经典试题练习