某律师执业诚信信息公示平台字体加密解决思路

本文章只做技术探讨,请勿用于非法用途。

目标网站

为持续加深对律法的学习, 我们需要再来收集一些数据。

本文来解决 credit.acla.org.cn/ 这个网站的字体加密问题。

网站分析

网站反爬

这个网站的各种反爬措施还挺多的, 接口加密啊, 验证码啊(每个页面都有), 无限 debugger 啊, 什么的, 还是挺烦的, 如果不要求效率的话可以考虑用 selenium 来过掉, 这里重点来解决一下字体加密的问题。

加密分析

首先来看下字体加密什么样子。

如图, 为律所详情页的截图, 可以看到啊, 这个 标签下的字体为加密字体, 这个网站他大多数数据信息都会像这样来做一个加密。

开整

首先来说下解决的方法。

  1. 找到字体文件。

  2. 确定文件字体与网站字体的映射关系。

  3. 替换网站字体。

字体文件获取

刷新页面, 勾选字体栏即可看到返回的页面, 直接下载下来即可。

有些网站可能会返回多个字体文件来迷惑你, 这时候可以全局搜索 ttf 等字体文件的关键词, 来读相关代码来找到前端页面解密时用的具体是字体文件。

字体文件解析

字体文件处理可以用 TTFont 工具, 我们先将文件解析成可读的 xml 格式来看下这到底是什么个东西。

下载字体文件保存为本地 font.ttf, 然后解析为 font.xml。

可以看到文件里是一些映射关系, 和一些字形的信息, 如果是简单的数字加密或是很少的字体加密的话, 这一步直接拿到映射关系就可以用了, 但是这个网站他每次的字体文件都不一样, 所以这种简单的映射关系不可用。

在字体编辑软件里也可以看到是对哪些字体进行了修改加密, windows 可以用 font creator , mac 上我用的是 FontForge 来解析的。

映射关系获取

上一步我们拿到了字形信息, 这里来生成提供一个通用的方法来做映射关系。

font.ttf 文件中通过 unicode 码来标记对应的字体的字形信息, 我们也可以用同样的方式, 获取加密字体对应的原字体的字形信息(固定不变的), 以此为 key 来设计映射关系。

这里定义了一个全局变量 font_map 来存储映射关系, 通过 PIL 的 ImageFont 对象来将字体的字形信息复现出来, 然后通过 ocr 技术得到字的原型, 完成解密。将解密过的字存入 font_map, 随着收录的字越来越多, 解析效率会越来越高。

加密字体替换

这里没什么难度, 做一个简单的替换就好。

结语

这个也是我首次接触这种麻烦些的字体加密, 就想写出来权当分享, 思路也是借鉴于之前看到的一个帖子(找不见了。。)。 文中有些东西需要自己去调试后可能会理解更深些, 因为写的过程中被其他事情打断了几次, 之前整理的思路乱掉了, 写的可能不太顺畅, 大家哪里不懂的话可以留言讨论吧, 或者有什么更好的思路也欢迎来交流。

相关推荐
xiaoxiongip6667 小时前
假设两个设备在不同网段,网关怎么设置才能通呢
网络·爬虫·python·https·智能路由器
tryCbest7 小时前
Python基础之爬虫技术(一)
开发语言·爬虫·python
疏狂难除7 小时前
某个网址的爬虫——mitmproxy的简单使用
爬虫·mitmproxy
想要打 Acm 的小周同学呀7 小时前
爬虫相关的面试问题
爬虫·selenium·职场和发展
QMY52052010 小时前
爬虫技术抓取网站数据的方法
运维·爬虫·自动化
傻啦嘿哟20 小时前
房地产爬虫实战:链家二手房数据抓取与深度分析
爬虫
雨中散步撒哈拉1 天前
16、做中学 | 初三上期 Golang面向对象_进阶
爬虫·python·golang
召唤神龙2 天前
爬虫代理IP池搭建指南:实测推荐高可用服务商
爬虫·tcp/ip
深蓝电商API2 天前
“油猴”脚本变身爬虫:Tampermonkey辅助自动化与数据采集
爬虫·自动化·tampermonkey
云动雨颤2 天前
爬虫是怎么工作的?从原理到用途
爬虫·python·数据挖掘