JS逆向实战13.5——某小说网站 小说字数 和月票字体加密
1.JS逆向实战1——入门难度 某省在线审批网站params 随机生成2.JS逆向实战2--cookie——__jsl_clearance_s 生成3.JS逆向实战3——某企业服务平台内容encrypt_data加密4.JS逆向实战4——cookie 参数 acw_sc__v25.JS逆向实战5--JWT TOKEN x_sign参数6.JS逆向实战6-- x轴 y轴 过点触验证码7.JS逆向实战7-- 某市链接params-DES加密8.JS逆向实战8——某网实战9.JS逆向实战9——cookies DES加密混淆10.JS逆向实战10——某集团RSA长加密11.JS逆向实战11——某金属集团动态cookie加密12.JS逆向实战12——某店 captchaToken 参数 加密13.JS逆向实战13——某市公共资源交易中心Cookie混淆加密
14.JS逆向实战13.5——某小说网站 小说字数 和月票字体加密
15.JS逆向实战14——猿人学第二题动态cookie16.JS逆向实战15——猿人学第五题 动态cookie乱码增强17.JS逆向实战16——猿人学第20题 新年挑战-wasm进阶18.JS逆向实战17——猿人学第七题 动态字体 随风漂移19.JS逆向实战18——猿人学第八题 验证码 - 图文点选20.JS逆向实战19——通杀webpack逆向21.JS逆向实战20——某头条jsvm逆向22.JS逆向实战21——某查查webpack密码加密23.JS逆向实战22——某政府采购网简单cookie反爬24.JS逆向实战26——某店ua模拟登陆25.JS逆向实战24—— 补环境过某房地产瑞数4.026.JS逆向实战25——某壳找房模拟登录+百度喵星人指纹加密破解.27.JS逆向实战23——某市wss URL加密+请求头+ws收发28.逆向实战29——某度-某家号2024旋转验证码识别29.逆向实战31——xhs—xs算法分析30.逆向实战32——某东最新h5st4.4算法分析31.某云盘encryptMsg 加密之自动化扣webpack本网站不算严格意义的逆向,只是爬虫的一个小手段。
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
68747470733a2f2f7777772e71696469616e2e636f6d2f616c6c2f
爬取目标
获取如上图所示的数字 以及标题简介 小说名 和小说地址 以及作者名和作者URl
网站分析
这个网站我们只爬取首页,也不对详情页做分析。
所以我们只需要分析这个链接
得到其中的对应链关系 即可得到数字
顾字体TTF加密流程分为
- 下载相应的包
- 对包进行解析获取其中的映射关系(当然其实这个有逻辑的可以解密解出来 太复杂了我就不说了)
- 获取数字
对应的月票也是同理
解决方法
首先我们通过FontCreator
上文的字体文件。
fontCreator官网: https://fontcreator.com.cn/ 点击免费下载 下载即可 有免费试用权限
如图所示映射关系如上图
然后我们通过代码把两者对应起来。
下面展示部分代码
def font_encode(self, encrypted_number, font_obj): """ :param encrypted_number: 加密后的数字 :param font_obj: fontTools对象 :return: """ # 获取映射表 mapping_dict = font_obj.getBestCmap() # print("字体加密映射表", mapping_dict) for index, i in enumerate(encrypted_number): new_font_list = re.findall(r'\d+', i) # 去掉特殊符号 &# &# ; encrypted_number[index] = new_font_list dict_e_a = { "one": '1', "two": '2', "three": '3', "four": '4', "five": "5", "six": '6', "seven": "7", "eight": '8', "nine": '9', "zero": '0', 'period': "." } for i in mapping_dict: # 遍历dict_e_a # print(i) for j in dict_e_a: # dict_的值等于dict_e_a的键 if mapping_dict[i] == j: mapping_dict[i] = dict_e_a[j] # print("替换成数字后的关系映射表", mapping_dict) return mapping_dict
然后通过匹配response去掉特殊符号的值 和 改成阿拉伯数字后的关系映射表,把密文改成明文 100196 =》 3
这样就能得到完整的数字。
爬取成功!!!
本文发表于博客园《始識的技术笔记》,作者为 zichliang(hybpjx/始識)
作者博客:https://www.cnblogs.com/zichliang
本文地址:https://www.cnblogs.com/zichliang/p/17408064.html
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
作者博客:https://www.cnblogs.com/zichliang
本文地址:https://www.cnblogs.com/zichliang/p/17408064.html
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器