一次奇葩的字体加密破解

目标url:易车论坛。

该论坛进行了部分字体加密的操作,加密文件的url为:https://baa.yiche.com/yc-pc/comment/font/yc-ft.woff

为什么说奇葩呢,1是因为它是静态的url,不会变,2是加密逻辑字体太多,足足400多个字体的加密,见下图

加密字体

我们在页面上看到的数据是这样的:

加密字体

页面上的数据是,我们看到的是uni4E00,也就是说,页面上的和后面的分号是没用的。字体文件中的uni也是没用的。

我们尝试在4E00前添加\u,得到'\u4E00',根据utf-8的解码数据,得到结果为汉字一

测试数据

既然知道规则,就可以建立映射关系,然后根据映射关系挨个替换了。如果你够耐心,就挨个做,如果你够细心,会发现使用fonttools库去做就很快。上代码

            res = requests.get(detail_link,headers = self.headers).text  # 发送评论请求
            # -------------破解字体映射
            world = TTFont('./yc-ft.woff') # 字体文件目录
            value_lists = world.getGlyphOrder()[2:] # 获取所有value值
            d = [eval(r"'\u" + i[3:] + "'") for i in value_lists]  # 待拼接汉字 # 拼接value值为汉字
            d1 = ["" + i[-3:].lower() + ";" for i in value_lists] # 改成网页内容
            file_dict = dict(zip(d1, d)) # 建立字典映射
            for key in file_dict:
                res = res.replace(key.lower(), file_dict[key]) # 遇到则替换
            # --------------字体破解结束

吐槽,好奇葩的

你可能感兴趣的:(一次奇葩的字体加密破解)