# js逆向 **Repository Path**: heart-rate-i/js-reverse ## Basic Information - **Project Name**: js逆向 - **Description**: 【JS逆向】已逆向完成深圳某医院瑞数5代(分析大概流程)、抖音a_bogus参数、【source2.js文件可用】小红书x-s参数、拉勾网头部【AES、sha256嵌套以及头部限时参数RSA加密AES秘钥获取】、bosszhipin JSRPC、一品威客登录逆向、全国某市场监管服务平台等等 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 46 - **Forks**: 29 - **Created**: 2024-05-29 - **Last Updated**: 2025-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: 小红书xs, 抖音abogus, 瑞数5代, 逆向案例精选, 拉勾网 ## README # js逆向 #### 介绍 已逆向完成深圳某医院瑞数5代、抖音a_bogus参数、小红书x-s参数、一品威客登录逆向,全国某市场监管服务平台结果AES解密,bossRPC逆向.... 每个文件中env.js为补环境的文件,source.js为扣下来的源码,项目名称拼音缩写命名的js为运行测试文件,其中也编写了生成参数的函数入口。 本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! boss某聘 jsRPC远程调用生成zp_stoken: [https://gitee.com/heart-rate-i/jsrpc-boss-direct-hiring.git](https://gitee.com/heart-rate-i/jsrpc-boss-direct-hiring.git) #### 使用说明 每个项目中直接运行.py文件即可成功请求接口 深大某医院 补环境 勉强达到人均手撕瑞数的水平(狗头) 撸起袖子加油干! 分析流程: ![瑞数5流程](%E6%B7%B1%E5%9C%B3%E5%A4%A7%E5%AD%A6%E6%9F%90%E5%8C%BB%E9%99%A2/%E7%91%9E%E6%95%B05%E6%B5%81%E7%A8%8B.png) 简单总结:一开始是有一些环境没补但是已经出值了,长度为242位,但是去请求两次状态码都会是412,这也说明虽然出值了但是是假值!! 后面把环境基本都补上了,也不难; 经过前面的一边调试一边补的枯燥的过程,后面需要补的就是一些简单的,看代理吐出来什么,缺什么就补什么,不用补具体,函数就补空函数,对象就补空对象 后面补出来生成的值长度还是242,但是是正确的,如图第一次请求响应为412 第二次为200且打印了页面 ![深大某医院](%E6%B7%B1%E5%9C%B3%E5%A4%A7%E5%AD%A6%E6%9F%90%E5%8C%BB%E9%99%A2/cookie.png) ![深大某医院2](%E6%B7%B1%E5%9C%B3%E5%A4%A7%E5%AD%A6%E6%9F%90%E5%8C%BB%E9%99%A2/%E7%BB%93%E6%9E%9C.png) 三个动态值:js_src 外链,也就是断点的第一处展示的以 ‘ __$_ts = window['$_ts']_ ;_ ’ 开头的代码的链接 后面还需要请求这个链接拿到代码;metaContent meta标签的content值; autoJsCode 自执行的js代码 我是通过正则表达式来提取第一次请求文本中的对应值的 如图 ![深大某医院3](%E6%B7%B1%E5%9C%B3%E5%A4%A7%E5%AD%A6%E6%9F%90%E5%8C%BB%E9%99%A2/%E5%8A%A8%E6%80%81%E5%80%BC.png) 抖音 ![dy1](%E6%8A%96%E9%9F%B3/7.27a_bougs%E6%8A%96%E9%9F%B3%E8%AF%84%E8%AE%BA%E9%87%87%E9%9B%86.png) ![dy2](%E6%8A%96%E9%9F%B3/7.27a_bougs%E6%8A%96%E9%9F%B3.png) ![dy3](%E6%8A%96%E9%9F%B3/7.27%E6%8A%96%E9%9F%B3%E8%AF%84%E8%AE%BA.png) ![dy4](%E6%8A%96%E9%9F%B3/7.27%E6%8A%96%E9%9F%B3%E8%AF%84%E8%AE%BA%E9%87%87%E9%9B%86a-bougs.png) 小红书 ![xhs加密入口](%E5%B0%8F%E7%BA%A2%E4%B9%A6/xhs%E5%8A%A0%E5%AF%86%E5%85%A5%E5%8F%A3.png) ![xhs响应结果](%E5%B0%8F%E7%BA%A2%E4%B9%A6/7.27%20X-s%E5%B0%8F%E7%BA%A2%E4%B9%A6%E6%95%B0%E6%8D%AE.png) ![8.28小红书最新更新](%E5%B0%8F%E7%BA%A2%E4%B9%A6/8.28%E6%9C%80%E6%96%B0xhs.png) 拉勾网(AES、RSA、sha256)补环境/纯算 ![纯算法](%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C%E5%8A%A0%E5%AF%86%E6%A1%88%E4%BE%8B/%E6%8B%89%E9%92%A9%E7%BD%91/%E6%8B%89%E5%8B%BE%E7%BD%91%E7%BA%AF%E7%AE%97.png) ![补环境](%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C%E5%8A%A0%E5%AF%86%E6%A1%88%E4%BE%8B/%E6%8B%89%E9%92%A9%E7%BD%91/%E6%8B%89%E5%8B%BE%E7%BD%91%E8%A1%A5%E7%8E%AF%E5%A2%83.png) 某证信数据服务 ![某证信数据](%E6%B7%B1%E8%AF%81%E4%BF%A1%E6%95%B0%E6%8D%AE.png) 一品威客逆向登录(AES、MD5) ![一品威客](%E4%B8%80%E5%93%81%E5%A8%81%E5%AE%A2%E9%80%86%E5%90%91%E7%99%BB%E5%BD%95/%E9%80%86%E5%90%91%E7%99%BB%E5%BD%95.png) 精灵数据 ![精灵数据](%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C%E5%8A%A0%E5%AF%86%E6%A1%88%E4%BE%8B/%E7%B2%BE%E7%81%B5%E6%95%B0%E6%8D%AE(%E8%B5%84%E8%AE%AF)/%E7%B2%BE%E7%81%B5%E6%95%B0%E6%8D%AE.png) 全国某市场监管服务平台 ![全国某市场监管服务平台](%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C%E5%8A%A0%E5%AF%86%E6%A1%88%E4%BE%8B/%E5%85%A8%E5%9B%BD%E5%BB%BA%E7%AD%91%E5%B8%82%E5%9C%BA%E7%9B%91%E7%AE%A1%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0/%E8%A7%A3%E5%AF%86%E7%BB%93%E6%9E%9C.png) 总结:虽然是对结果进行标准的AES加密,但是中间还是有一个坑的,需要断点调试;f值不能用扣下来的 f = d.a.enc.Utf8.parse("jo8j9wGw%6HbxfFn"); 这一串来表示,不然报错'utf-8',去源代码中打断点调试,查看f的真实值,如图 ![全国某市场监管服务平台2](%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C%E5%8A%A0%E5%AF%86%E6%A1%88%E4%BE%8B/%E5%85%A8%E5%9B%BD%E5%BB%BA%E7%AD%91%E5%B8%82%E5%9C%BA%E7%9B%91%E7%AE%A1%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0/f1.png) ![全国某市场监管服务平台3](%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C%E5%8A%A0%E5%AF%86%E6%A1%88%E4%BE%8B/%E5%85%A8%E5%9B%BD%E5%BB%BA%E7%AD%91%E5%B8%82%E5%9C%BA%E7%9B%91%E7%AE%A1%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0/f2.png) 有道翻译 ![有道翻译](%E6%9C%89%E9%81%93.png)