在学习🕷时,遇到字体加密破解作业时,print elements出现加密字体部分或偶尔全部破解的结果,成功率很低。具体解决思路如下:
一、核查可能出现的问题:
1、写代码时出现“幼稚”错误。结果:该改的都改了,都是正常的。
2、确认网站刷新正常或print request.txt 是否正常。结果:正常。
3、按照报错在网上查找类似案例。结果:五花八门,借鉴价值为零。
4、自己解决,解决算是自己宝贵经历。
4.1 检查源代码加密字体中的规律(其实用处不大)。
4.2检查转存的XML内容(意义不大,没学过,甚至现学怎么按自己的想法获取数据)。
4.3检查下载字库内容(这个是重点!),发现字库对应内容有点不一样(基本上对字库里部分编码都有印象了),以次为突破口,发现下载的几个字库文件都不一样,此时明白了,网站在字库做了随机加密的处理,经过比对,发现字库有4-5个,而且部分字库编码有交叉。
二、解决办法:
背景:初学字体解密,当时还不会用“DDDDorc”模块,只能采取原始办法,对字库进行xml转存,从xml中提取对应的编码,再进行替换。
方法:自己搞一个glyf字典,把发现的3套字库(因为懒,太麻烦了,配套率超过50%,甚至达到75%,能大概率出正常结果就可以了)对应关系放进字典中,再用代码自己的遍历对比。
结果:偶发多刷一次run(),替加密字体后,结果一切正常。
三、总结经验(重点):
1.通常网站字库会定期更换(一般几天一换),所以在做学习时,不影响当天的获取结果。
2.我的运气太好了,遇到了一个多套字体库随机发的网站。所以,在遇到类似的问题现象时,排除代码错误的因素后,可以检查多次下载字库内容进行比对。
3.DDDDorc是更优的解决方案。