最新公告
  • 欢迎您访问爱上源码网,分享精品整站源码,网站模板,游戏源码,APP小程序源码以及视频教程免费下载;服务永无止境!立即加入我们
  • 爬虫分析之 JS逆向某验滑动加密(1)

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图

    相关学习推荐:javascript视频教程

    今天给大家来分析并还原某验的 JS 加密,做过爬虫的应该都知道这个验证码,如果你还没遇到以后你会碰到的相信我

    话不多说,时间宝贵,进入正题!

    抓包

    进入官网,点击选择今天的主题滑动验证,其他验证类型的加密大同小异,只要你掌握了下面的方法!

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图1

    点击按钮抓包,随意拖动一下,请求数据包如下

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图2

    可以看到一堆请求参数,其实你要做的就是实现 w 的加密

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图3

    点击进去,就能看到加密的 JS 文件,为便于分析将其保存到本地。

    AST 还原

    通过调试可以看到有大量的 unicode 格式的编码以及数组名称的混淆

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图4

    传统解决方法是在浏览器 console 端输入就能看到它的庐山真面目,但是这种方法太麻烦了,接下来我们用 AST 来将其还原!

    首先还原 unicode 编码,打开 AST 在线解析网站(https://blogz.gitee.io/ast/[1])

    将待还原的代码放进去

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图5

    可以看到只需要把 extra 属性删掉就能还原原来的值。遍历代码如下:

    const parser = require("@babel/parser");const traverse = require("@babel/traverse").default;const t = require("@babel/types");  //操作节点的函数,比如判断节点类型,生成新的节点等:const generator = require("@babel/generator").default;  //生成还原后的代码const fs = require('fs');var jscode = fs.readFileSync("./slide.js", {    encoding: "utf-8"});const visitor = {        StringLiteral(path) {                delete path.node.extra            }}let ast = parser.parse(jscode);traverse(ast, visitor);let {code} = generator(ast, opts = {jsescOption: {"minimal": true}});fs.writeFile('decode_slide.js', code, (err)=>{});复制代码

    注意 jscode 就是之前扣下来的 JS 代码, 最后将还原后的代码写入到 decode_slide.js 文件中

    接下来是混淆数组的还原。观察调试代码,所有的数组都是基于 JS 文件中开头的大数组 KBBji.$_Co,同时将该数组赋值给很多变量,这些变量名都是随机生成的。

    所以接下来我们要做的找出这些变量名称,然后将其替换成对应的字符串值!

    AST 在线解析一下

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图6 image.png

    根据解析结果,编写相应的遍历代码

    const visitor = {    VariableDeclaration(path){        const {declarations} = path.node;        if(!t.isMemberExpression(declarations[0].init))return;        if(declarations[0].init.property.name !== "$_Co")return;        if(declarations.length !==3 || declarations[0].init.property === undefined)return;        let value1 = declarations[0].id.name;        let value2 = declarations[2].id.name;        new_array.push(value1, value2);    }};复制代码

    上面就将所有的变量名找出来了,找到之后就能将所有的这种形式 $_DFCB(66) 代码还原了,这样代码就能有个直观感受!

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图7

    相信聪明的你很快就能写出还原的代码。经过上面几步整体还原后的代码是这样的

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图8

    根据关键词很快就能搜索到加密所在位置,清晰可见!如果不还原你是搜不到的.. 还原后在网站上我们也能很快定位到加密位置,打上断点

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图9

    同样的代码可读性相差多大,相信你一眼就能看到。你以为这样就完了?No!

    Reres 替换

    既然代码已经还原了,但是我们在网站上调试的时候还是混淆的代码,那怎么办呢?

    接下来上另一个神器 Reres, 它的作用是将请求映射到本地,即你可以用本地 JS 来代替远程 JS 文件。

    用法直接参考它的 github https://github.com/annnhan/ReRes[2]

    好了有了这个东西,我们就能在网站上用还原后的 JS 来进行调试,太强了把!

    效果如下:

    爱上源码网文章爬虫分析之 JS逆向某验滑动加密(1)的内容插图10

    tql,这下加密参数扣起来就没压力了吧!

    后台回复 tql 获取相关代码!

    想了解更多编程学习,敬请关注php培训栏目!

    以上就是爬虫分析之 JS逆向某验滑动加密(1)的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:JS 爬虫 滑动加密
  • 本文转载于:juejin,如有侵犯,请联系916990011@qq.com删除
    • 上一篇:认识Ajax基础之数据请求
    • 下一篇:Node和React中如何进行实时通信?

    相关文章

    相关视频

    • python爬虫爬网页时遇到网页重定向怎么办
    • js如何获取UEditor富文本编辑器中的图片地址
    • js实现滑动进度条
    • 浅谈爬虫及绕过网站反爬取机制
    • js split方法如何使用
    • 爬虫分析之 JS逆向某验滑动加密(1)
    • JavaScript基础篇——了解js
    • JavaScript标识符
    • JavaScript算数运算符

    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn!
    本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~

    重要声明:
    1.本站视频教程,软件及网站源码版权均属于原作者所有,您必须在下载后的24个小时之内,从您的电脑中删除!非法商业用途,后果自负!
    2.本站不保证所提供下载资源的安全性和完整性,仅供下载学习之用!如链接失效或资源含外站广告,请联系客服处理!给予奖励!
    3.本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!本站提供有偿服务!如有侵权请联系在线客服!
    4.如您手中有优质资源或教程,可以自助投稿发布,成功分享后有奖励和额外收入!
    5.如您需要正版微擎模块可联系本站客服,我们有价值30w+商业微擎应用出售微擎坑位和招收代理!
    6.400电话/软著/ICP,EDI许可证/商标特价办理中!
    爱上源码下载网 » 爬虫分析之 JS逆向某验滑动加密(1)

    常见问题FAQ

    从网站下载的源码都有安装教程么?不会安装怎么办?
    本站发布的网站源码和模板资源大部分在压缩包内都有教程,如您不会安装可以联系本站在线技术进行付费安装。
    爱上源码的所有源码都是亲测能正常运行的么?
    本站目前拥有资源10w+,包含整站源码,网站模板,游戏源码,小程序源码,视频教程,破解软件等,每天也在测试更新;因时间和精力有限我们无法对资源进行一一测试,只能保证所分享资源内容无误,希望理解。
    我手中的优质资源可以在你这换钱或者VIP么?
    爱上源码支持投稿,欢迎发布您手中的优质资源进行售卖;本站VIP支持免费获取,目前邀请10人注册爱上源码即可免费获取VIP。
    爱上源码除了资源分享还有其他业务没?
    【价值30W+微擎模块出售正版商业微擎坑位及招收代理,详情咨询本站客服!】我们团队目前运营并推广几套商业化saas智能小程序系统能满足大部分小程序开发需求,并由SaaS和独立部署版商城小程序系统;另外销售400电话,各种ICP/EDI资质证书办理,软著和商标注册服务等。

    发表评论

    • 28会员总数(位)
    • 35644资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 539稳定运行(天)

    提供最优质的资源集合

    开通VIP 源码下载