开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 22409|回复: 97
打印 上一主题 下一主题
收起左侧

[2019开源大赛(第四届)] 【首发】woff文件字体解析 分析+源码

  [复制链接]

结帖率:100% (3/3)
跳转到指定楼层
发表于 2019-11-16 00:09:23 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   广东省揭阳市
本帖最后由 Ossian 于 2019-11-16 17:00 编辑

反爬

有时候你可能会遇到下面这种情况

明明这个字以明文的形式呈现在眼前 但复制粘贴确是乱码

分析

打开网页源码 找到关键字 可以发现标题下面一行字以【&#x】开头的编码

shift + c 跟中元素后可以发现 这个字体编码指向【PingFangSC-Regular】这个css位置中

跟入css里 发现其加载了 【63f94cca.eot】这个字体文件

在来源中搜 【63f94cca】发现文件却是以woff结尾的文件 可能是谷歌浏览器对其做的兼容

要搞定字体解析 先要知道.WOFF 是啥

WOFF的映射关系 一个编码对应一个字体

搞清楚这个是啥情况后 就要解决woff文件解析的问题了
当然是让万能的 Js来帮忙解析
借助【百度字体解析平台】(该网站纯JS解析woff,不过不知道为啥好像不好使了)

分析过程省略...

扣下Js文件并改写 (AMD框架 改的比较傻)

再借助ChakraCore引擎支持高级语法

返回如下结果 {"keys":[],"values":[]} (文本太长 删了一些开头的)

如上图所示 有个密密麻麻的文本 如下

咱把这个文本格式叫做svg

svg又是啥呢

里边的path解析 可参考 https://www.jianshu.com/p/c819ae16d29b这篇文章

那么如何绘制呢
接下来就要借助gdi来绘制了

绘制过程 省略....

以上这个绘制还不够完善 但勉强能够使用的

效果

若以上你感觉得不错的话

您的评分是作者最大的动力,留下您的好评吧!



WOFF字体解析.zip (2.73 MB, 下载次数: 460)

回复 @yunying  
有些东西需要测试过才知道 不要一概而论...

1.png (55.59 KB, 下载次数: 3)

1.png

点评

emmmmmmm~~~~   江苏省苏州市  发表于 2019-11-16 19:02
&#开头不就是html实体 直接用模块就好了 或者去掉&# 就是文字的ascii码了 转回中文就好   河北省保定市  发表于 2019-11-16 13:53

评分

参与人数 18好评 +14 精币 +34 收起 理由
猥琐小胖子 + 1 + 4 支持开源~!感谢分享
易语言资源网 + 1 + 5 支持开源~!感谢分享
猪不会笨死的 + 1 互相讨论,共同进步
星煜魍魉 + 2 支持开源~!感谢分享
星殒 + 1 感谢分享,很给力!~
精易自媒体 + 1 + 3 感谢分享,很给力!~
兔子君 + 1 + 3 感谢分享,很给力!~
大司命 + 1 + 3 支持开源~!感谢分享
yunying + 1 + 2 支持开源~!感谢分享
aib + 1 + 1 JScript 解密交流群:发来贺电
NewHx + 1 以楼主的技术是怎么坐上名人堂成员的?
西北望射贪狼 + 1 感谢分享,希望几年以后我也能有足够的知识能帮助到别人
精易小鱼 + 1 + 1 感谢分享,很给力!~
网络注册会员 + 1 + 1 支持开源~!感谢分享
冯古屋 + 1 + 1 支持开源~!感谢分享
红领巾·馒头 + 1 + 2 精彩文章希望继续努力
峰生水起之林 + 1 + 1 支持开源~!感谢分享
小梦想zzZ + 1 + 2 感谢发布原创作品,精易因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

95
发表于 2024-1-13 04:27:33 | 只看该作者   河南省洛阳市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:94% (314/333)

签到天数: 1 天

94
发表于 2023-10-3 11:52:51 | 只看该作者   广东省云浮市
6666666666666
回复 支持 反对

使用道具 举报

93
发表于 2022-9-1 14:11:07 | 只看该作者   海南省文昌市
666666666666666666666666
回复 支持 反对

使用道具 举报

92
发表于 2022-8-29 13:28:09 | 只看该作者   山东省潍坊市
精彩文章,顶顶,学学
回复 支持 反对

使用道具 举报

91
发表于 2022-8-29 13:27:43 | 只看该作者   山东省潍坊市
需要学习,才能进步
回复 支持 反对

使用道具 举报

签到天数: 6 天

90
发表于 2022-5-10 09:09:15 | 只看该作者   广东省东莞市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 15 天

89
发表于 2022-1-16 19:32:25 | 只看该作者   湖南省岳阳市
xxxxxx1111111111
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)

签到天数: 2 天

88
发表于 2021-6-20 06:16:57 高大上手机用户 | 只看该作者   浙江省台州市
sophitia212 发表于 2021-1-28 11:36
这个图绘制出来怎么是空心的呢,有没办法填充?

用Windows自带画图截取字空心,然后用颜色填充也许可以吧。
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)

签到天数: 2 天

87
发表于 2021-6-20 06:14:26 高大上手机用户 | 只看该作者   浙江省台州市
chenyucheng 发表于 2021-6-20 06:12
执黑者或执白者的姓名 尽量保持姓名的一致,职业棋手推荐使

执黑者或执白者的姓名 尽量保持姓名的一致,职业棋手推荐使{问号或方框}官{问号或方框}公布的姓名。
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)

签到天数: 2 天

86
发表于 2021-6-20 06:12:17 高大上手机用户 | 只看该作者   浙江省台州市
chenyucheng 发表于 2021-6-20 06:07
https://m.book118.com/html/2018/1026/6203045110001224.shtm?from=mip也这样,点上面的“文字版”,复制 ...

执黑者或执白者的姓名 尽量保持姓名的一致,职业棋手推荐使
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表