爬虫逆向:瑞数5(华能电子)

瑞数5逆向过程(纯补环境) 声明:本文仅作学习交流,请遵守法律法规,不要恶意爬取网站。 阅读详情

# 本案例仅供学习和参考,不做商用

声明一下,因为瑞数主要是对网站的cookie或者url后缀进行加密,所以我们就需要分析了

这里我们现分析cookie是如何生成的,分析cookie的话,需要开一个无痕模式

1,清空应用里面的cookie

2,打开事件监听的脚本断点

3,刷新页面

4,这里有一个VM说明是在某一个文件读取并运行,可以理解为虚拟机并没有保存在我们的磁盘

5,继续往后调

6,继续往后面调

7,第一次虚拟机里面的代码就是这里所写的,第二次加载的代码也是通过这里的外链调用的

8,继续往后走又会走到这里来,执行这里的文件代码,第一次虚拟机的代码也就是cd后面的值其实是jsvmp位移混淆的,现在这个代码会将这个jsvmp位移混淆的代码变成可以执行的js文件也就是这个BmTo这个文件的eval去执行

9,先将第一次虚拟机的代码还原成可以执行的js代码,然后再通过eval执行

10,通用的方法就是搜.call,在BmTo里面搜.call

11,鼠标悬浮在这个参数上面,可以看到解密之后js代码

12,点击右侧的单步执行就可以跳到里面去,就可以看到解密之后的js文件

13,

14,除了用脚本来定位,还可以用hook,用hook是最稳的一种方式

hook之后点击调用第一个调用堆栈,可以看到这个结构是一样的,而且很快很准

15,分析完以后就可以开始逆向

16,先拿虚拟机的代码,哈哈哈

再拿外链的代码

然后一步一步补环境,打印信息也是出来了

这里完整的代码

/*环境代理*/
function get_enviroment(proxy_array) {
    for (let i = 0; i < proxy_array.length; i++) {
        handler = `{
            get: function(target, property, receiver) {
                   console.log('方法:get','    对象:${proxy_array[i]}','    属性:',property,'    属性类型:',typeof property,'    属性值类型:',typeof target[property]);
                   return target[property];
            },
            set: function(target, property, value, receiver){
                    console.log('方法:set','    对象:${proxy_array[i]}','    属性:',property,'    属性类型:',typeof property,'    属性值类型:',typeof target[property]);
                    return Reflect.set(...arguments);
            }
        }`;
        eval(`
            try {
                ${proxy_array[i]};
                ${proxy_array[i]} = new Proxy(${proxy_array[i]}, ${handler});
            } catch (e) {
                ${proxy_array[i]} = {};
                ${proxy_array[i]} = new Proxy(${proxy_array[i]}, ${handler});
            }
        `);
    }
}

/*补环境*/
window = global
top = self =  window
window.ActiveXObject =  undefined
window.addEventListener = function(){};
window.attachEvent = undefined
div = {
    getElementsByTagName:function(tag_name){
        console.log("div getElementsByTagName ->",tag_name)
        return []
    }
}
head = {
    removeChild:function(child){
        console.log("head removeChild ->",child)
    }
}
script = {
    getAttribute:function(attr){
        console.log("script getAttribute ->", attr)
        if (attr === "r"){
            return "m"
        }
    },
    parentElement:head
}
meta = {
    getAttribute:function(attr){
        console.log("meta getAttribute ->", attr)
        if (attr === "r"){
            return "m"
        }
    },
    parentNode:head
}

document = {
    createElement:function(tag_name){
        console.log("document createElement ->",tag_name)
        if(tag_name === "div"){
            return  div
        }
    },
    removeChild:function(child){
        console.log("document removeChild ->",child)
    },
    getElementsByTagName:function(tag_name){
        console.log("document getElementsByTagName ->",tag_name)
        if (tag_name === "script"){
            return [script,script,script,script,script,script]
        }
        if(tag_name === 'meta'){
            return [meta,meta]
        }
        if(tag_name === 'base'){
            return []
        }
    },
    appendChild:function(child){
        console.log("document appendChild ->",child)
    }
}
location = {
    "ancestorOrigins": {},
    "href": "https://ec.chng.com.cn/channel/home/#/purchase?top=0",
    "origin": "https://ec.chng.com.cn",
    "protocol": "https:",
    "host": "ec.chng.com.cn",
    "hostname": "ec.chng.com.cn",
    "port": "",
    "pathname": "/channel/home/",
    "search": "",
    "hash": "#/purchase?top=0"
}
navigator = {
  "vendorSub": "",
  "productSub": "20030107",
  "vendor": "Google Inc.",
  "maxTouchPoints": 0,
  "scheduling": {},
  "userActivation": {},
  "geolocation": {},
  "doNotTrack": null,
  "plugins": {
    "0": {
      "0": {},
      "1": {}
    },
    "1": {
      "0": {},
      "1": {}
    },
    "2": {
      "0": {},
      "1": {}
    },
    "3": {
      "0": {},
      "1": {}
    },
    "4": {
      "0": {},
      "1": {}
    }
  },
  "mimeTypes": {
    "0": {},
    "1": {}
  },
  "pdfViewerEnabled": true,
  "webkitTemporaryStorage": {},
  "webkitPersistentStorage": {},
  "hardwareConcurrency": 16,
  "cookieEnabled": true,
  "appCodeName": "Mozilla",
  "appName": "Netscape",
  "appVersion": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
  "platform": "Win32",
  "product": "Gecko",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
  "language": "zh-CN",
  "languages": [
    "zh-CN"
  ],
  "onLine": true,
  "webdriver": false,
  "connection": {},
  "windowControlsOverlay": {},
  "deprecatedRunAdAuctionEnforcesKAnonymity": false,
  "protectedAudience": {},
  "bluetooth": {},
  "clipboard": {},
  "credentials": {},
  "keyboard": {},
  "managed": {},
  "mediaDevices": {},
  "storage": {},
  "serviceWorker": {},
  "virtualKeyboard": {},
  "wakeLock": {},
  "deviceMemory": 8,
  "userAgentData": {
    "brands": [
      {
        "brand": "Google Chrome",
        "version": "143"
      },
      {
        "brand": "Chromium",
        "version": "143"
      },
      {
        "brand": "Not A(Brand",
        "version": "24"
      }
    ],
    "mobile": false,
    "platform": "Windows"
  },
  "locks": {},
  "login": {},
  "ink": {},
  "mediaCapabilities": {},
  "devicePosture": {},
  "hid": {},
  "mediaSession": {},
  "permissions": {},
  "presentation": {},
  "serial": {},
  "gpu": {},
  "usb": {},
  "xr": {},
  "storageBuckets": {}
}
setInterval = function(){};
setTimeout = function(){};
/*代理检测*/
proxy_array = ['window', 'document','location','navigator','div','script','meta','script.parentElement','base']


get_enviroment(proxy_array);


爬虫瑞数4案例:网上房地产 瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。 阅读详情

相关推荐

爬虫瑞数5.5案例:银河证券

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。

老衲爱洗头的博客 4555

远程RPC+插桩巧解瑞数5,人人都能懂的瑞数(附源码)

众所周知,rpc对于一些复杂的加密有奇效,我们只需要找到加密函数所在的位置即可通过RPC远程调用,从而省去了扣代码补环境等掉头发过程。本篇以维普期刊为例,一探瑞数的奥秘。本文通过hook,插桩,跟栈,RPC等一系列操作成功破解瑞数5加密,对于爬取一些需求量不大但加密繁琐的网站还是十分合适。

cason的博客 6081

瑞数5补环境

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。瑞数目前流行的版本有5代、6代与vmp版本。本次介绍的就是5代v瑞数补环境解决方案。

pyzzd的博客 4069

瑞数5.5逆向笔记(纯扣算法)

人均瑞数的年代,加油吧,5.5都这么难了,后面的路太难了

weixin_45515807的博客 8116

某网站瑞数5代环境检测JS逆向分析

由浅到深分析以组合拳闻名的瑞数防护

吴秋霖的博客 1万+

爬虫瑞数5案例:深圳大学总医院

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。由于之前某通信的瑞数已经调整,这里再出一篇文章,瑞数特点以及请求执行的流程已在之前的文章中分析过,这里不再特别讲解;

老衲爱洗头的博客 2656

JS逆向之补环境过瑞数详解

纯补环境黑盒过瑞数

qq_36291294的博客 1万+

shangbiaojuruishu:商标局瑞数绕过与反爬学习

shangbiaojuruishu 商标局瑞数绕过与反爬学习 贴逆向好的js代码..剩下靠你们自己了 需要返回cookie,否则无限跳转,文件夹中带有nginx静态服务配置 增加2020年7月30号的逆向学习代码 1.对代码格式 2.处理控制流平坦化,减少对键盘伤害 3.对加密方法名解密,减少对鼠标伤害 4.删除无限debugger 备注:index.html为原始页面代码,index2.html为处理后页面代码,eval.js为格式化后的evaljs代码,eval2.js为处理后代码 快速阅读: index2.html 搜索call快速找到eval的入口 eval2.js 搜索"$$a[0]"这里是控制流平坦化代码的开始,搜索"$WH(24)"这里是设置无限debugger,很多个 商标网已经改版,部分js已经改变

瑞数4、5通杀

折腾了半个多月,终于把瑞数4、5过了,分享一点心得吧,成功没有捷径,只要肯掉头发,不怕坐出痔疮就OK了。2.每次请求的页面内容都是不一样的,cookie_o与cookie_p有对应关系的。3.128位的数组除了个别几个值是动态的之外,其他的要和浏览器一致。话不多说,先上图看效果。1.对自动化进行了检测。

bluedream21str的博客 2438

别再让地图加载慢吞吞!GeoServer + GeoWebCache 缓存配置实战(附性能对比)

本文详细介绍了如何通过GeoServer和GeoWebCache优化地图服务性能,实现地图加载速度的显著提升。从缓存机制解析到实战配置流程,再到高级性能调优技巧,帮助开发者构建高效地图缓存系统,解决地图加载慢的问题。

weixin_42525369的博客 405

数字锁相环的原理与FPGA实现

数字锁相环是锁相环电路的全数字实现。锁相环电路能够实现对输入信号的相位进行跟踪,进而在噪声中提取纯净的有用信号。以上就是今天要讲的内容,本文简单地介绍了锁相环的原理,然后,在Vivado仿真平台上,通过verilog做仿真验证。最终仿真结果能够实现锁定,但锁定时间较长,表明参数仍可做调整。

weixin_45857378的博客 8508

维普期刊 瑞数5

郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。

m0_53227339的博客 2764

Keil5编译报错:ARM Compiler Version 5缺失的完整解决方案

本文提供了Keil5编译报错“ARM Compiler Version 5缺失”的完整解决方案。详细介绍了手动安装ARM Compiler Version 5的步骤,包括下载安装包、配置编译器路径及常见问题排查,帮助开发者快速恢复老项目的编译环境。

bb456的博客 945

瑞数5药监局js逆向

本次网址:www.nmpa.gov.cn这是最后一篇四代五代瑞数的文章了,环境的话拿维普期刊的环境跑,稍微改下就能用,不会补的话看四代房地产的文章。 药监局的cook有效期有一段时效,拿到第二个ts也就是6000多行vm生成的cook,可以一直使用;无线debufgger右键跳过加个for (let i = 1; i < 99999; i++) window.clearInterval(i);获取流程;从首页进来只需要获取ts生成的cook跟202页面返回的俩cook,然后点击药品查询,会进入到搜索页面,也

weixin_58584029的博客 9963

Nacos启动报错No DataSource set?5分钟搞定standalone模式配置

本文针对Nacos启动时常见的“No DataSource set”报错,深入解析了其根源在于默认集群模式与外部数据库依赖。提供了两种快速解决方案:通过命令行参数“-m standalone”启动,或直接修改启动脚本配置文件,从而在5分钟内以单机模式成功启动Nacos,无需配置MySQL数据库。

weixin_29234509的博客 465

IGV实战指南:从数据导入到Peak可视化的全流程解析

本文提供了一份IGV实战指南,详细解析了从数据导入到Peak可视化的全流程。内容包括软件安装、参考基因组加载、测序数据处理、信号调整以及如何精准定位和可视化Peak区域,并分享了导出出版级矢量图的高级技巧,帮助用户高效完成基因组数据可视化分析。

weixin_29212867的博客 148

【瑞数5】浅谈某普期刊JS逆向的环境检测点

浅谈某普期刊的瑞数5 JS逆向过程中遇到的一些环境检测

weixin_44862184的博客 1万+

保姆级教程:在瑞芯微RV1126B上部署轻量化YOLOv8,实现端侧实时目标检测

本文详细介绍了在瑞芯微RV1126B芯片上部署轻量化YOLOv8模型的完整流程,包括开发环境搭建、模型训练优化、量化转换及嵌入式部署。通过利用RV1126B的3TOPS NPU算力和AI-ISP特性,实现端侧实时目标检测,提升边缘AI应用的性能和效率。

weixin_30329623的博客 266

js逆向瑞数5代

js逆向瑞数5代

qq_48888764的博客 2755

数据分析案例-电影数据可视化分析

数据介绍数据为2011-2021电影数据可视化分析首先导入本次项目需要的包和数据 数据预处理 可视化

m0_64336780的博客 2万+

高级数据结构之R树(R-tree)

R树(R-tree)是一种将B树扩展到多维情况下得到的数据结构,它最初由Antonin Guttman于1984年提出。B树的结点中会存储一个键的集合,这些键把线分成片段,沿着那条线的点仅属于一个片段。因此,B树使得我们可以很容易地找到点。如果把沿线各处的点表示成B树结点,我们就能够确定点所属唯一子结点,在那里可以找到该点。 Antonin Guttman在他提出R树的经典论文中给出的R树例子...

白马负金羁 1万+

瑞数 VMP 版逆向之补环境详解

本文章主要对案例网站的VMP版本瑞数逆向做一个讲解。

qq_38223858的博客 6089

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

瑞数5.0中国银河证券

js逆向之补环境过瑞数5.0某银河证券,你还在拿某药监局做案例?该换换了.瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。1.一个meta标签,其content内容很长且是动态的(每次请求会变化),会在eval执行第二层JS代码时使用到;2.一个script标签。

7511

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

瑞数3代、4代、5代、6代总结

(1)通常某数的cookie 有效时间很多,需要不间断的请求,主要时一个短的,一个长的,两个字段除了最后一个字符不同其他相同,不同网站,命名不同。同时根据value 中的第一个数字可以区分时第几代版本。某数在几年前时一座大山,在如今人均的情况下,对该产品做一个总结。1.简单记录一下一些学习过程。1.简单记录一下一些学习过程。瑞数4代、5代、6代总结。

LJL_python的博客 1876

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

瑞数5维普期刊js逆向

网址首页http://lib.cqvip.com/瑞数5跟瑞数4区别不大,检测的东西多了一点,不会补的话可以看前面的瑞数4补环境。瑞数五有几个小版本,加密入口隐藏了,正则匹配直接能找到入口。\S{4} = \S{4}\[\S{4}\[\d{2}\]\]\(\S{4}, \S{4}\)拿瑞数4的环境加上代理,直接跑瑞数5,瑞数5环境比瑞数4稍作修改并多添加了一些环境检测。首页cook获取的长度问题: 打上src断点无痕访问,获取第一个ts,第一次获取ts是经过call生成的vm是一万两千行的,然后让这个大的自

weixin_58584029的博客 3640

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 393
上一篇: 爬虫逆向:国家信息安全漏洞(加速乐),cookie反爬
下一篇: 爬虫逆向,瑞数6,补环境,国家专利
interception
博客等级 码龄1年 117粉丝 42原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值