当前位置:网站首页>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)

边栏推荐
猜你喜欢

The sword refers to the Great Wall Cannon?Official spy photos of Changan's new pickup

化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)

面试蚂蚁(P7)竟被MySQL难倒,奋发图强后二次面试入职蚂蚁金服

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

上帝空间——全球首个基于Web3.0的艺术协议创意平台,拓宽多元艺术融合边界

A topic of map

职责链模式(responsibilitychain)

Rust 从入门到精通04-变量

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

【LeetCode】701.二叉搜索树中的插入操作
随机推荐
Mysql高级篇学习总结13:多表连接查询语句优化方法(带join语句)
【LeetCode】1403.非递增顺序的最小子序列
终于有人把分布式机器学习讲明白了
The sword refers to the Great Wall Cannon?Official spy photos of Changan's new pickup
外键约束;外键约束
ESP8266-Arduino编程实例-TSL2561亮度传感器驱动
3-5年以上的功能测试如何进阶自动化?
mongo-导出数据到mysql
临床研究方法学,到现场,到数据真实发生的地方 | 对话数智 x 张维拓
*iframe*
【LeetCode】899.有序队列
C#/VB.NET:在 Word 中设置文本对齐方式
MySQL不提供数组,只能做成表吗?
The use of DDR3 (Naive) in Xilinx VIVADO (1) to create an IP core
ESP8266-Arduino编程实例-APDS-9930环境光和趋近感器驱动
MySql数据库入门的基本操作
【飞控开发高级教程7】疯壳·开源编队无人机-编队飞行
关于架构的思考
知道创宇EDR系统实力通过中国信通院端点检测与响应产品能力评测
今天15:00 | CVPR 2022 论文分享精彩继续