某盾代码js版流程分析从无感到空间点选(最后一篇轨迹加密图标以及拼图和ast)

你只管努力,剩下的交给天意。

文章只提供学习,如有侵权请立即联系我。

前言
先声明此文章只讲流程某盾的流程分析,而且某盾的跟新快,建议学习流程。

某盾官网:官网
总体来说某盾的验证码配合js总共分为四套
【fp和无感】
【actoken及滑块】
【轨迹加密以及图标拼图ast还原】
在这里插入图片描述
还是前面的一样从这里开始
在这里插入图片描述
一路向北然后在这里下断点,刷新再来
在这里插入图片描述
然后就,找到了加密文字点选图标图形推理都是这个加密在这里扣就完事了
在这里插入图片描述
在这里插入图片描述
最后再说一个加密不同的拼图
在这里插入图片描述
在这里插入图片描述
下面是ast还原代码
在这里插入图片描述
在这里插入图片描述

// 这是文件流
const fs = require('fs');
// 解析js代码为json格式
const {parse} = require("@babel/parser");
// 根据是json格式的节点来处理json格式的js代码
const traverse = require("@babel/traverse").default;
// 节点的处理类型以及判断等等
const t = require("@babel/types");
// 根据处理好的json格式代码在还原成js代码
const generator = require("@babel/generator").default;
// 读取你的需要操作的js代码
// const jscode = fs.readFileSync("./watchman.min2.js", {encoding: "utf-8"});
const jscode = fs.readFileSync("./get_ac.js", {encoding: "utf-8"});
// 引入你需要还原的js字符串list
const {str_list} = require('./ast_字符还原模型.js');

const ast = parse(jscode);


const visitor = {
    MemberExpression(path) {
        const {object, property} = path.node;
        // if (!t.identifier(object.type)) return;
        if (!t.isIdentifier(object) || !t.isNumericLiteral(property)) return;
        if (!str_list.hasOwnProperty(object.name)) return;
        // console.log(object.name,property.value)
        console.log(str_list[object.name][property.value]);
        try{
            path.replaceWith(t.valueToNode(str_list[object.name][property.value]))
        }catch{

        }
    },
    StringLiteral(path) {
        delete path.node.extra
    }

};

traverse(ast, visitor);

// 在还原回js
let {code} = generator(ast, opts = {jsescOption: {"minimal": true}});

//写入新的js
fs.writeFile('reduction_core.js', code, (err) => {
});

最后放上我最喜欢的一打七在这里插入图片描述

鸣谢:感谢我我好大哥布哥哥以及凡哥,飞机,晚安,懒哥,夏洛,明哥七位哥哥帮助帮助。

有疑问可以加群讨论:【1147451684】

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值