JS逆向 | 瑞数四代入门指南

本文介绍了如何识别和破解瑞数(RS)的cookie,强调了耐心和理解其工作原理的重要性。通过查看HttpOnly属性来区分服务器返回的cookie,并根据第一个数字判断RS的代数。推荐使用Hookcookie工具结合油猴脚本进行注入,通过堆栈回溯定位代码。同时,文章提供了一站式的爬虫、逆向分析等相关课程信息。

 瑞数的难点在于繁琐,只要有耐心就可以解决。可是小白往往无法过掉最开始的反调试,也没办法定位到cookie加密的位置,更对瑞数没有基本的了解。

    无限debugger推荐使用右键单击‘永不在此暂停’,当然也可以本地替换(FD\chrome都可以)和清除定时器,但并不推荐。

     再来看一张图,然后回答几个问题。

    

    1.怎么知道rs的cookie是服务器返回的,还是本地生成的?

    看菜单栏中的HttpOnly,打上√的是服务器返回的,所以要扣的是80T。

    

    2.怎么知道rs是几代的?

    看本地生成的cookie第一个数字是什么,这里80T后是4,因此为4代。

    3.你说这么多,我怎么开始扣cookie?

    用我教的Hook cookie,直接油猴脚本注入,推荐下载这个:

    

    Hook cookie注入:

   

     第一次是个true,放开断点,第二次就是cookie。

    定位到cookie,我怎么知道哪里开始扣代码?回到堆栈上一层即可。

这里分为第一次cookie和第二次cookie,第一次cookie是641行,用这个生成第二次649行的cookie。

第一次cookie向上扣,第二次走下边的while大循环。

耐心点,第一次cookie会js就能扣,第二次要有耐心,需要坐得住,亲身实践,几个小时跟完大循环,就可以攻克4代rs了。

    注:零基础一站式爬虫、零基础一站式安卓逆向、安卓逆向沙盒定制、chromium指纹浏览器定制也在开课哦,扫码联系吧!


专注于网络爬虫,JavaScript与App安全防护与逆向分析

包括Frida与Xposed教程发布

JavaScript逆向分析6并补充相关环境配置的过程中,需要结合逆向工程的核心技术以及对反爬机制的深入理解。6的核心防护机制基于动态生成的JavaScript环境,通过不断变化的AST(抽象语法)结构、动态执行流程以及浏览器指纹检测等手段,使得传统的静态分析和模拟执行变得非常困难。因此,补环境配置的核心目标是构建一个能够模拟浏览器行为的JavaScript执行环境,并满足6的检测逻辑。 ### 6的逆向分析要点 6的前端码通常经过多层混淆,包括但不限于字符串加密、函名混淆、AST转换以及动态码执行。在逆向分析时,AST还原技术显得尤为重要,它可以帮助还原码的原始逻辑结构,从而更清晰地理解码功能[^2]。使用工具如Babel或自定义的AST解析器,可以将混淆后的码重新映射到可读性更强的结构,便于进一步分析和调试。 ### 补环境配置的实现方法 补环境的核心在于模拟浏览器环境中的关键对象和行为,例如`window`、`document`、`navigator`等对象,以及`eval`、`Function`构造函的调用方式。为了高效补环境,可以借助封装好的工具如`webEnv`,通过预设关键参(如`cookie`名称、`meta`标签ID等)来快速构建请求环境[^1]。具体步骤如下: 1. **识别关键检测点**:通过调试工具(如Chrome DevTools)观察6在浏览器中执行时的关键检测点,例如`window.navigator.userAgent`、`window.outerWidth`、`window.innerHeight`等。 2. **模拟浏览器行为**:在Node.js环境中使用Puppeteer或类似的无头浏览器工具,模拟真实的浏览器行为,包括页面加载、DOM操作以及事件触发。 3. **封装环境参**:将常见的检测参封装为可配置项,例如`cookie`名称、`meta`标签内容、`userAgent`字符串等,以便快速复用和调整。 4. **处理AST动态逻辑**:针对6中频繁出现的AST动态生成逻辑,可以结合AST还原工具,将混淆后的码还原为可读性更强的形式,便于进一步分析执行流程。 ### 示例码:使用Puppeteer模拟6环境 以下是一个使用Puppeteer模拟浏览器环境并访问6防护页面的示例码: ```javascript const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); // 设置userAgent await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'); // 模拟window.navigator属性 await page.evaluateOnNewDocument(() => { delete navigator.__proto__.webdriver; }); // 设置viewport await page.setViewport({ width: 1920, height: 1080 }); // 访问目标URL await page.goto('https://example.com'); // 截图验证 await page.screenshot({ path: 'example.png' }); await browser.close(); })(); ``` ### 封装与复用策略 为了提高效率,建议将常见的环境配置封装为模块,例如定义一个`ruishuEnv.js`文件,包含所有与6检测相关的模拟逻辑。通过这种方式,可以在多个项目中快速复用,并根据实际需求进行参调整。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值