当前位置:网站首页>JS逆向字体反爬,某供应商平台反爬实践
JS逆向字体反爬,某供应商平台反爬实践
2022-08-04 11:31:00 【InfoQ】
️ 实战场景
aHR0cHM6Ly9jbi5jaGluYS5jbg==




️ 供应商字体反爬 实战场景
fontimport re
from fontTools.ttLib import TTFont
from hashlib import md5
font = TTFont('./fonts/112.woff')
font.saveXML('./112.xml')



<span class="secret">𐃎𐃏𐃏 𐃏𐃏𐃎𐃐 𐃐𐃑𐃒𐃒</span>
import re
from fontTools.ttLib import TTFont
from hashlib import md5
# font = TTFont('./fonts/112.woff')
# font.saveXML('./112.xml')
# 读取字体文件
font = TTFont('./fonts/112.woff')
# 读取 cmap
cmap = font.getBestCmap()
with open('./112.xml','r',encoding='utf8') as f:
ret = f.read()
ret = ret.replace('\n','').replace(' ','')
# print(ret)
for i in cmap:
# 查询目标数据
data = re.findall(f'<CharStringname="{cmap[i]}">(.*?)</CharString>', ret)[0]
# print(data)
# 将查询到的结果进行 md5 编码
char_md5 = md5(data.encode('utf8')).hexdigest()
print(char_md5)

边栏推荐
- 你知道吗?那些专属于代码的浪漫~
- 将博客搬至CSDN
- Mysql——》类型转换符binary
- Leetcode - using sequence traversal features first completed 114. The binary tree to the list
- MySQL不提供数组,只能做成表吗?
- BOSS直聘回应女大学生连遭两次性骚扰:高度重视求职者安全 可通过App等举报
- Mysql高级篇学习总结14:子查询优化、排序优化、GROUP BY优化、分页查询优化
- 化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)
- asp.net解决大文件断点续传
- 强烈推荐一款优秀且通用的后台管理系统
猜你喜欢

数据库表列类型;DML_添加数据;DDL_修改,删除数据库表

项目管理前景

Redis查询缓存

Leetcode brush questions - 543. Diameter of binary trees, 617. Merging binary trees (recursive solution)

The use of DDR3 (Naive) in Xilinx VIVADO (2) Read and write design

ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法

【飞控开发高级教程7】疯壳·开源编队无人机-编队飞行

剑指长城炮? 长安全新皮卡官方谍照

ESP8266-Arduino编程实例-MQ3酒精传感器驱动

国际原子能机构总干事警告称扎波罗热核电站安全形势已“完全失控”
随机推荐
【黄啊码】MySQL入门—2、使用数据定义语言(DDL)操作数据库
Four ways to traverse a Map
【LeetCode】232.用栈实现队列
Xilinx VIVADO 中 DDR3(Naive)的使用(1)创建 IP 核
项目管理前景
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
知网网站地址更换
【机器学习】:如何对你的数据进行分类?
喂,你知道节流是什么吗?
【目标检测】yolov2特征提取网络------Darknet19结构解析及tensorflow和pytorch实现
God Space - the world's first Web3.0-based art agreement creative platform, broadening the boundaries of multi-art integration
深度学习------pytorch实现划拳模型训练
MySQL 45 讲 | 11 怎么给字符串字段加索引?
vector中函数emplace_back的实现原理
*iframe*
从零开始Blazor Server(7)--使用Furion权限验证
关于架构的思考
Leetcode刷题——构造二叉树(105. 从前序与中序遍历序列构造二叉树、106. 从中序与后序遍历序列构造二叉树)
外键约束;外键约束
知道创宇EDR系统实力通过中国信通院端点检测与响应产品能力评测