分析加密字体与原字体文件
测验一中的加密字体(一)

字体的坐标

测验二中的加密字体(一)

字体的坐标

比较两者的字体坐标

我们可发现,不同测验对同一字加密的name值是不同的,也就是说对字的加密是动态的,是通过修改错误的name来实现加密的,导致你复制的时候出来的也是错误的字,但是其字体的坐标点信息是一样的,所以我们可以以字体的坐标来作为切入点,接下来比较一下与官方字体(用的是思源黑体)的区别。

与原字体进行比较
原字体文件中(一)的字体坐标


可以看出,其仅仅是改变了字的name值,字体的坐标点信息并没有更改。


解决思路
我们可以把原字体的name值与其对应的字体坐标做一个映射,例如:

name         coordinate(坐标信息再MD5后的数值)
uni2F00     827ccb0eea8a706c4c34a16891f84e7b
uni2F34     b725bb778cfd0cc0c751468d4edc7d32
得到这个映射表后,再把加密字体的坐标信息也做一个映射,例如:

name          coordinate(坐标信息再MD5后的数值)
uni651B     827ccb0eea8a706c4c34a16891f84e7b
由于字体的坐标信息没有改变,也就是说,你坐标信息的MD5值没有变
拿着这个MD5值去找到真正的字体name



拿到真正的name之后,将题目的字加密name替换为真正的name
既把uni651B替换为uni2F00,在将字体的unicode值(就是name替换uni为\u)转化为中文



结语
没了,结束,他如果换原字体文件,就是从新跑一下原字体映射字典就行。
 【来源:https://blog.gocos.cn/archives/229.html,转载请注明】