首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人均系列, 6 代 JS 逆向分析

前言K哥往期相关文章:人均系列, 4 代 JS 逆向分析人均系列, 5 代 JS 逆向分析转载十一姐优质好文:js逆向思路-区分vmp/6/5/4/3反爬上述文章中,详细介绍了的特征...、如何区分不同版本、的代码结构以及各自的作用,本文就不再赘述了,不了解的同志可以先去看看之前的文章。...get: function() { return cookieTemp; } });})();VM 代码以及 $_ts 变量获取参考五代文章:人均系列..., 5 代 JS 逆向分析流程分析与五代一致,用本地替换固定一套代码。...生成:图片进入 _$Js 内部,发现值的生成由 _$Zb 实现:图片进入 _$Zb,可以发现这行是用于生成 0 - 255 的随机:图片那么 4 位数组的生成就解决了,由四个 0 - 255 间的随机数组成

1.4K20

人均系列, 4 代 JS 逆向分析

Botgate 多用于政企、金融、运营商行业,曾一度被视为反爬天花板,随着近年来逆向大佬越来越多,相关的逆向文章也层出不穷,真正到了人均的时代了,这里也感谢诸如 Nanda、懒神等逆向大佬,揭开了神秘的面纱...过的方法基本上有以下几种:自动化工具(要隐藏特征值)、RPC 远程调用、JS 逆向(硬扣代码和补环境),本文介绍的是 JS 逆向硬扣代码,尽可能多的介绍各种细节。...(3、4代)或者 412(5代),接着单独请求一个 JS 文件,然后再重新请求页面,后续的其他 XHR 请求中,都带有一个后缀,这个后缀的值是由 JS 生成的,每次都会变化,后缀的值第一个数字为的版本...图片 5 代也有以 T 和 S 结尾的两个 Cookie,但有些特殊的 5 代也有以 O 和 P 结尾的,同样的,以 O 开头的是第一次的 412 那个请求返回的,以 P 开头的是由 JS 生成的...代逻辑分析》,感兴趣的可以试试,不了解 AST 的可以看看以前的文章《逆向进阶,利用 AST 技术还原 JavaScript 混淆代码》,后续有时间 K 哥再写写 AST 还原代码的实战,本文咱们选择硬刚

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    人均系列, 5 代 JS 逆向分析

    前言 图片 动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位...在 K 哥往期的文章《人均系列, 4 代 JS 逆向分析》中,详细介绍了的特征、如何区分不同版本、的代码结构以及各自的作用,本文就不再赘述了,不了解的同志可以先去看看之前的文章。...Cookie 入口定位 本文案例中 5 代网站为:aHR0cHM6Ly93d3cubm1wYS5nb3YuY24vZGF0YXNlYXJjaC9ob21lLWluZGV4Lmh0bWw= 定位 Cookie...cookieTemp; } }); })(); 断下之后往上跟栈,可以看到组装 Cookie 后赋值给 document.cookie 的代码,类似如下结构: 图片 继续往上跟栈,和4代类似...图片 后缀生成 本例中,请求头中有个 sign 参数,Query String Parameters 有两个后缀参数,这两个后缀和 4 代类似,都是生成的。

    3.2K20

    JS逆向之补环境过详解

    JS逆向之补环境过详解“” 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!!...好在现在网上有很多讲解相关的文章,贴心的一步一步教我们去分析流程,分析如何去扣逻辑,企图以此教会我们 (手动狗头)。却鲜有文章详细去讲解如何通过纯补环境的方式过。今天,它来了!...*注:本文内容均以一个新人友好型 rs4网站: 网上房地产,为例;*一:rs的流程逻辑我们在做逆向的时候,首先得分析出哪些加密参数是需要逆向的,然后再是去逆向这些参数。当然也是一样。...三、详解补环境过rs不知道补环境原理的同志可以参考我上篇文章:JS逆向之浏览器补环境详解;其实纯补环境过原理很简单,我们来观察执行流程图解,基于浏览器环境执行这些动态JS可以生成可用的 cookie_t...五、弯道超车环节过几乎是每个新手逆向者的小目标,也是面试官常见的提问点。

    4.3K30

    】维普期刊JS逆向详细流程

    这是我第一次接触加密,比较难,不过学到的东西也是挺多的,也是因为我第一次解,所以文章写得比较详细甚至是啰嗦,这篇文章大致是以我逆向的思路去写的,应该适合像我这样从未接触过的朋友。...关于本次解密的总结 本文中也会有一些调试技巧夹在其中,如有问题或更好的建议欢迎提出!...for (var i = 1; i < 99999; i++)window.clearInterval(i); 参考:爬虫漫游指南:的反调试陷阱 死循环 debugger 过了这一步后,当我回到网页...这个也是加密的一大特色,这些加载 JS 代码的代码本身就是被混淆的,并且存在于 Html 页面中。...经过多次调式,可以发现整个代码也是在一个 while 循环中跑,这是的一大特色。 ? 且 if 语句比较的值是没有变化的,都是变量小于 256,这为我们注入代码提供了方便。

    3K20

    信息的“狩猎术”

    业务视角下的技术创新 动态安全的创新性,让信息在Bot自动化攻击防护领域一枝独秀,信息CEO余亮骄傲的称之为“碾压性的技术优势”。...这家追踪信息近三年、尽调完备的投资方,充分认可安全市场的巨大潜力,以及信息自主研发的动态安全和主动防御技术在市场上的稀缺性,更看好信息的未来成长性,在资本寒冬中投出了坚定的一票。...然而细数信息的客户,却恰好是这群对安全最为“挑剔”的企业,且复购率达到50%以上。为什么信息能够获得这些企业的“芳心”? 第一,以动态安全技术为依托,信息不断强化自身的技术创新能力。...比如,信息的产品可以做到业务感知,防护和响应策略可在信息产品上实现配置,而不需要变更业务代码,这一点对于企业用户来说非常关键,也是信息与其他应用开发商本质的区别。...信息的发展路径完全是基于企业用户的需求。

    51820

    JS代码混淆 | js 逆向系列

    0x01 简介 文章较长,为保证有效传递知识,已经为大家准备了 PDF 版本,放在了文末 JavaScript代码混淆是一种通过对代码进行转换和修改,使其难以理解和逆向工程的技术。...下面是混淆JavaScript代码的一些主要意义: 防止代码被逆向工程:混淆使得代码的逻辑变得晦涩难懂,使攻击者难以理解代码的运行原理。这可以防止恶意用户或竞争对手直接分析、修改或复制您的代码。...根本就不重要,因为它完全可以做成一个黑盒子,随意自定义的对原代码的字符串进行修改,之后提供最终的字符串以及逆向还原的过程,最终通过 eval 来执行,所以回到我们的初衷,我们分析这种混淆压缩所采用的知识点...随机数种子,虽然官方在描述中类型说是 string|number ,但是从官网设置来看,应该是只支持 number , 配置随机数种子可以使随机这件事更有保障一些,好像前段时间有师傅就分析了一些随机生成算法导致的漏洞...+[]+[+[]]]) 0x04 一些感想 代码混淆是一个代码保护以及阻止逆向分析的优解,但是我感觉不像是最终解,我相信代码混淆会在最终解中继续扮演重要角色 感谢创造代码混淆工具、方法以及与其对抗寻求解密的人

    2.4K10

    什么是逆向JS

    逆向JS(JavaScript)通常指的是对已经编译或混淆的JavaScript代码进行分析、理解和修改的过程。这通常用于安全研究、软件破解、漏洞分析、或理解某些复杂的或混淆的代码。...逆向JS的过程可以相当复杂,因为JavaScript可以被多种方式混淆和保护。...以下是一些逆向JS的基本步骤和技巧: 代码美化(Beautify): 使用工具如JSBeautify或Prettier将混淆的代码转换为更易读的格式。...这可以帮助你发现代码中的错误或不一致之处,并验证你的逆向工程成果。 遵守法律和道德准则: 在进行逆向JS时,务必遵守相关的法律和道德准则。...请注意,逆向JS可能是一个复杂且耗时的过程,需要一定的编程经验和对JavaScript的深入理解。如果你是初学者,建议从简单的代码和示例开始练习,并逐渐增加难度。

    20310

    JS逆向】某麻将游戏数据生成JS加密逆向分析探索!

    某游戏站麻将数据逆向,该页面数据在网页源码中无法找到,源码上没有,网页调试是存在数据的,数据是js文件驱动生成,需要JS加密逆向分析,逆向思路和方法知道借鉴和参考,可以说本篇是步步踩坑!...建议:JS逆向JS基础是关键,JS基础语法学习一定不要落下! 踩坑的根本原因在于:仅仅扣取JS代码是不行的,得会调试代码,能够修改代码,对于JS代码运行报错能够进行基本的处理和修改,使其正常运行!...文件生成页面数据 5.老规矩,搜索关键字查找加密部分,这里关键字为 document.getElementById 6.可以看到就是1008js文件,在生成数据可疑处打上断点 7.断点调试验证数据生成,...可看到部分数据生成 8.继续下一行调试,验证,这里就考验js阅读能力了 9.经过对比打印输出验证,g就是我们要获取的值,运行输出g值即可 10.抠出js代码,并修改调试 由于关联函数多,基本上都可以全部抠出再进行修改...: document is not defined 这里如果不懂js调试运行,主要是处理报错的能力,坑是没办法填了!

    17710

    Js 逆向进阶 | 浅谈 Js 代码保护

    看了他们这个说明可能以上两个功能相对比较吸引人: 因为加密和压缩这种太容易被人分析了,原理比较简单; 控制流混淆对于逻辑的处理能够增大分析难度,原理上其实就是分析js得到语法树,通过操控语法树,比如对于...2.Js2x http://ty2y.com/obfuscate/#how-to-use ? 这个跟上面那个多态变异是一样的。...SecurityWorker https://www.securitify.io/ 这个重点强调了虚拟机,其实虚拟机的思路也比较好理解:这里只说虚拟机的思路i: 第一阶段: 这个可能是目前看到应该是 js...vmp 最强的,这种方案其实也是很好理解的,比如对于一个js代码来说,我们只用js操作写一个基于栈的解释器,然后对于本身要保护的js进行虚拟化,定义一堆自定义操作,这个时候其实还是比较弱,因为全部是...总结 对于 js 这种语言来说,由于语言本身的特殊性,一定的保护是非常必要的,再结合浏览器本身的发展,为了性能会在编译上做处理,引入本地层的东西,比如谷歌的 V8 ,火狐的 asm.js 在安全性上:业务上更多的结合服务端动态特性以及客户端强大的静态代码保护的设计会达到一个比较好的效果

    27.8K20

    JS逆向】某旗网加密数据生成JS加密逆向分析探索!

    一个小说网站文字内容加密,不用说,肯定也是js加密,加密特征也比较明显,尤其是适合新人学习js加密逆向分析数据和内容,算是比较简单,只需要扣取代码,直接用获取的加密参数运行即可获取数据内容。...文件加密生成,需解密逆向获取!...打开页面,查找加密特征 2.获取加密特征,关键字 加密特征还是比较好找的 3.搜索关键字 ChapterContent 很明显在第二个结果,js文件中 4.打开查看,继续搜索关键字 ChapterContent...5.打开至面板断点调试 6.可以看到正文文本内容已经生成成功了 7.查看代码,分析加密函数 8.不放心的话,可以继续打断点验证 9.可以看到加密过程 10.抠出代码,本地js文件调试 本地运行效果:...使用Python 调用js 文件获取数据效果: def get_data(): url = "https://c13.shuqireader.com/pcapi/chapter/contentfree

    22810

    JS逆向之漫画柜

    这次文章是补之前文章提到的eval加密 之前简单介绍了常见的JS混淆:JS逆向常见混淆总结 里面提到的第一种混淆就是这次要分析的主角,这里分析的网站是「漫画柜」 查看请求 打开控制台,随意点击一本漫画...第二种就是按照之前的文章提到的分析流程,我们分析一遍,虽然麻烦点会走弯路但是适合新手: 没有看过的朋友可以点击下面的文章链接回顾一下:实战案例浅析JS加密 - 基础总结篇 先搜索一下关键字,这里加密的参数是...x73\x70\x6c\x69\x63']('\x7c'), 0, {})) 解密过程 我们来捋一捋整个过程,首先网站加载页面,执行了这段eval,解密了参数里的一堆密文,之后根据参数请求具体内容,那我们逆向只要拿到页面的代码...JS逆向是细致活,需要大胆假设,小心求证,耐心调试,同时在逆向过程中卡住了需要求助的时候也不要不好意思。把自己思考的结果、遇到的问题描述清楚附上小小的红包和大佬聊聊,会有意想不到的惊喜。 共勉~

    1.6K30

    JS 逆向百例】有道翻译接口参数逆向

    逆向目标 目标:有道翻译接口参数 主页:https://fanyi.youdao.com/ 接口:https://fanyi.youdao.com/translate_o?...smartresult=dict&smartresult=rule 逆向参数: Form Data: salt: 16261583727540 sign: 151e4b19b07ae410e0e1861a6706d30c...bv: 5b3e307b66a6c075d525ed231dcc8dcd 逆向过程 抓包分析 我们在有道翻译页面随便输入文字,可以看到没有刷新页面,翻译结果就出来了,由此可以推断是 Ajax 加载的,...参数逆向 salt、sign、bv 三个加密参数,全局搜索任意一个,搜索结果比较多,依次对比,可以发现 fanyi.min.js 文件第 8969 行左右开始,Form Data 所有的参数都齐全了,埋下断点调试一下...,使用 nodejs 里面的加密模块 CryptoJS 来进行 MD5 加密,改写 JS 如下: // 引用 crypto-js 加密模块 var CryptoJS = require('crypto-js

    1.5K10
    领券