JS逆向-补环境-通杀方案

Js模拟执行 - 补浏览器环境 *浏览器环境:**是指JS代码在浏览器中的运行时环境,包括V8自动构建的对象(即ECMAScript的内容,如Date、Array),浏览器内置传递给V8的操作DOM和BOM的对象(如document、navigator)。**Node环境:**是基于V8引擎的Js运行时环境,它包括V8与其自己的内置API,如fs, http, path。因此,补浏览器环境其实是补浏览器有而node没有的环境,即补BOM和DOM对象。 阅读详情
AI摘要

本文介绍了一种JavaScript逆向工程的通用解决方案,重点是如何补充运行环境,以确保代码在各种情况下都能正常执行。通过调用get_env_script函数并传入适当的参数,可以自动化处理环境设置,适用于大多数场景。

var eval_env_script = "";
var all_eval_env_script = "";
var base_script = "";
//常用的proxy_array(按照"_"规范填写,后面会进行解析)
var proxy_array = ["window","window_document","window_location","window_navigator"];

function vmProxy(object) {
    return new Proxy(object, {

        set: function (target, property, value) {
            console.log("set", target, property, value);
            return Reflect.set(...arguments);
        },
        get: function (target, property, recelver) {
            console.log("get", target, property, target[property]);
            if (target[property] == undefined) {
                //拼接脚本
                eval_env_script = target.name.replaceAll("_", ".") + '.' + property;
            }
            return target[property];
        },

    });
}

for(var i = 0; i < proxy_array.length; i++) {
    var proxy_function = proxy_array[i].replaceAll("_", ".");
    base_script += proxy_function + ' = ' + '{};\r\n';
    eval( proxy_function + ' = ' + 'vmProxy(function ' + proxy_array[i] + '(){})');
}

function get_env_script (source_js_code, count) {

    //最多循环conut次,防止一直无法得到环境
    for(var i = 0; i < count; i++) {
        try {
            eval(source_js_code);//需要补环境的js
            break;//成功后退出循环
        } catch(err) {
            if (err.message.indexOf('Cannot read') != -1) {
                eval_env_script += ' = "";';
            } else if (err.message.indexOf('is not a function') != -1) {
                eval_env_script += ' = function() {return {};}';
            }
            eval(eval_env_script);
            all_eval_env_script += "\r\n" + eval_env_script;
        }
    }

    all_eval_env_script = base_script + all_eval_env_script;
    console.log("result: \r\n" + all_eval_env_script);

    return all_eval_env_script;

}

自己的代码调用get_env_script传入code与循环次数即可使用,普通的环境是没什么问题的,自动吐出 

JS逆向之补环境学习笔记(较杂) JS逆向之补环境下载使用vm2检测环境的一些点参考 下载使用vm2 vm2可以理解为一个纯净的脱离Node的V8环境,相当于重新启动了一个进程,然后在进程中不允许加载Node中的一些东西,禁止了一些Node中的特性,是一个相当于V8的沙箱环境。 npm install vm2 检测环境的一些点 node环境中有process,而V8环境或者浏览器环境中没有process。 任何canvas指纹都存在一定得误杀率,所以厂商不会去对canvas指纹做强校验,因为不同浏览器canvas底层实现代码不同;其次即 阅读详情

相关推荐

JS逆向 | 环境自吐法实战:从原理到工具,打造你的通杀补环境框架

本文深入探讨了JS逆向中的环境自吐法,从原理到实战工具v_jstools的详细解析,再到自建补环境框架的步骤与技巧。通过代理拦截JS运行时的环境访问操作,精准定位反爬检测点,帮助开发者高效应对复杂反爬策略,提升爬虫稳定性与效率。

weixin_28025327的博客 1128

简单JS补环境

document、navigation 最好补为。

爱吃辣椒的锅包肉 4807

瑞数JS逆向通杀模板:Playwright过动态Cookie与6代补环境实战

动态防护技术在现代网站中越来越常见,通过前端JS动态生成令牌,结合浏览器指纹、运行环境与行为特征来区分真实用户和自动化脚本。理解其原理后,JS逆向与爬虫工程才能真正落地:若环境指纹不完整或Cookie时效绑定不一致,请求很容易被判定异常。围绕这一场景,Playwright自动化浏览器可借真实Chromium环境完成令牌计算,瑞数6代补环境则适合需要高并发和低资源占用的批量采集。将版本识别、执行容器、Cookie抓取校验与会话接入拆成可替换模块,就形成一套能够快速适配不同站点的通杀模板。这套模板沉淀了核心设计

weixin_28828243的博客 333

JS逆向之浏览器补环境详解

让小白彻底搞懂 JS逆向 补环境

qq_36291294的博客 2万+

基于sdenv构建瑞数VMP通杀模版:JS逆向环境模拟实战

在JavaScript逆向工程领域,环境检测与反爬对抗是核心挑战之一。其原理在于网站通过检测浏览器环境指纹(如navigator、canvas、WebGL等)来区分真实用户与自动化脚本。为了应对此挑战,补环境技术应运而生,它通过模拟完整的浏览器运行时环境,使目标JavaScript代码在受控的沙箱中正常运行,从而绕过检测。这项技术的核心价值在于将复杂的算法逆向问题,转化为相对标准化的环境兼容性问题,极大提升了逆向工程的效率和通用性。在众多应用场景中,瑞数动态安全Botgate(尤其是其VMP版本)的对抗是典

weixin_33816821的博客 449

cocos2d lua游戏逆向 动态日志拦截(通杀)

本文深入探讨了针对Cocos2d Lua游戏的动态日志拦截技术,提供了一种“通杀”解决方案。该方法通过Frida框架Hook Lua与C++交互的关键函数(如lua_pushlstring),直接截获运行时传递的字符串数据(如JSON格式的游戏协议),从而绕过脚本加密,实现高效的游戏逆向分析。

wine的专栏 767

js逆向中,扣代码和补环境的区别

扣代码:适用于需要深入理解和分析特定代码逻辑的情况,适合解决具体的加密/混淆问题,执行效率高,但人工成本和时间投入较大。补环境:适用于需要绕过环境限制的情况,灵活性强,适用范围广,调试和实现效率较高,但执行效率可能较低。这两者其实是互补的,很多高级的逆向工作通常需要结合两者的优势,灵活应对不同的加密和保护策略。

qq_41413652的博客 1740

创宇盾JS逆向通杀模版:破解Web安全防护实战

在Web安全防护领域,JS逆向工程是突破反爬机制的关键技术。其核心原理是通过分析JavaScript代码执行逻辑,模拟浏览器行为生成有效验证参数。创宇盾作为主流防护产品,采用Cookie验证、JS挑战和行为验证三层防御机制。本文介绍的通用解决方案基于Node.js技术栈,通过vm2沙箱执行混淆代码,结合请求拦截与参数提取,构建可复用的通杀模版。该方案已成功应用于金融风控和电商数据采集等场景,特别适合需要处理大规模反爬验证的爬虫工程。关键技术点包括动态调试识别固定算法模式、安全执行环境构建以及自动化异常处理机

weixin_42116058的博客 95

js逆向之瑞数通杀 cookie 及 后缀获取方案

​ 使用最简单的方式获取瑞数的cooki和后缀实现并发请求目标网站。

m0_75266682的博客 3342

Incapsula Reese84 JSVMP逆向实战:通杀算法与定位技巧

本文深入解析了Incapsula Reese84 JSVMP防护机制的逆向实战技巧,包括加密入口定位的XHR断点跟栈法和btoa关键词定位法。通过详细步骤和实战案例,帮助安全研究员和爬虫工程师掌握JSVMP逆向的核心方法,实现通杀算法并优化性能,适用于Aegeanair、Olympicair等多个航司网站。

weixin_33670786的博客 444

JS逆向工具链构建:从AST解析到RPC桥接的工程化实践

JavaScript逆向工程是应对前端加密与反爬机制的核心技术,其原理在于通过动态调试与静态分析,还原被混淆或加密的代码逻辑。这项技术的价值在于能够高效破解复杂的数据加密流程,广泛应用于数据采集、自动化测试和安全研究等领域。在工程实践中,AST(抽象语法树)解析成为穿透高级混淆的关键手段,而RPC(远程过程调用)桥接方案则解决了复杂环境依赖的执行难题。通过结合动态Hook、代码还原和自动化集成,开发者可以构建一套覆盖侦察、分析、执行、集成的完整工具链,从而将JS逆向从手工作坊模式升级为高效的流水线生产,显著

weixin_34151004的博客 398

JS逆向核心流程

JS逆向核心流程,从分析网络请求、定位加密参数生成处、扣代码、补环境

qq_36291294的博客 2796

js逆向补环境-b站志远二期最后8节课笔记

补环境的一些知识点V8引擎/DOM/BOM/vm2/proxy代理/node/浏览器,以及b站志远二期补环境最后八节课的总结概况

十一姐的博客 1万+

JS 逆向系统进阶路线:专栏总纲与文章导航

本文是《JS 逆向系统进阶》专栏的总纲与导航页,围绕 JavaScript 基础、密码学、浏览器调试、Hook、扣代码、混淆还原、Webpack、补环境、AST、验证码、WASM、JSVMP、JSRPC、AI 辅助逆向等方向,整理一套长期更新的系统学习路线。文章不仅梳理主线学习顺序,也规划专题扩展和真实案例索引,帮助读者从零散技巧过渡到可迁移、可复盘、可持续提升的 JS 逆向能力体系。

XAMO Lab|代码、调试与复盘笔记 1736

【爬虫JS逆向-工具篇】浏览器内存漫游加密参数Hook实战教程

浏览器内存中变量级别的抓包监控工具!辅助爬虫JS逆向加密参数定位、让JS逆向变得更加简单~

吴秋霖的博客 4706

快速谱峭度算法解析

最近一直在研究振动信号的最优解调带宽寻找方法,而快速谱峭度算法是最常见的一种,因此本篇文章准备对该算法做个深入解析,也相当于自己的学习记录了。本篇文章对快速谱峭度算法做了一个较为详细的介绍,实际上就是通过多组滤波器将信号分解到不同的频段,再计算每个频段的峭度,从而找到值最大的频段,进一步地我们也可以选取其他指标作为频段的选择,以便更好地找到振动信号中的故障信息。

qq1234534215的博客 2743

聊聊瑞数6代通杀方案

聊聊瑞数6代通杀方案

liberty888的博客 7735

法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置

下载地址在文末。我们公司用新到一批FANUC 系统的设备,为方便使用就装了一个 FANUC 数控系统仿真软件FANUC CNC Guide v25.0 ,还是最新版不是市面上流传的老版本。模拟学习一下。

hakesashou的博客 1万+

【验证码逆向专栏】tianai行为验证wasm逆向分析

最近有粉丝投稿,说之前写的文章失效了,新版上了 wasm,而且轨迹校验也严格,手动滑都不一定能过去,网上相关文章也少之又少,本文就对该 demo 站进行逆向分析:

K哥爬虫 1780

数字IC后端PPA优化实战:Timing一致性策略与Module Region布局技巧

本文深入探讨了数字IC后端设计中的PPA优化实战,重点解析了Timing一致性问题及其解决方案。通过调整Clock Uncertainty、Timing Derate和RC Scale Factor等关键参数,使Innovus等PR工具的分析结果更接近PrimeTime签核结果。同时,文章详细介绍了Module Region布局技巧,通过为关键模块划定物理区域,优化单元摆放,有效减少线延迟,从而协同提升时序收敛效率与设计可预测性。

weixin_29218963的博客 203

安装部署 Guacamole 远程桌面网关

Guacamole 是Apache基金会提供的一组基于web的远程桌面访问工具,支持 VNC、RDP、SSH、 Telnet 等协议,支持远程透传音视频。

UsamaBinLaden6976498的专栏 1964

无限debugger通杀方案——定制chromium

修改debugger命令绕过无限debugger

碎片的博客 4655

RTKLIB使用方法(喂饭版)(三)——RTKPOST

应用OTL校正需要在“files”的“ocean loading BLQ format”中配置OTL文件。应用极潮需要在“files”的“EOP data file”配置ERP(地球旋转参数)文件。RAIM FDE:设置是否启用RAIM(接收机自主完整性监控)FDE(故障检测和排除)功能。点击下方的“save”可以把配置保存成文件,点击“load”就可以把配置文件加载出来。4接收机动态模型/地球潮汐矫正:设置流动站接收机动力学模型,只可以使用在DGPS/DGNSS或动态模型中。选择流动站天线的类型。

A2020713的博客 1万+
上一篇: virtualbox打造centos linux基础ova镜像环境
下一篇: virtualbox 开机启动虚拟机方案(无CMD窗口)
class_c
博客等级 码龄17年 37粉丝 16原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

class_c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值