Web Spider Babel安装 & Ast抽象语法 - 基本使用

2023-10-27

在这里插入图片描述



提示:以下是本篇文章正文内容,下面案例可供参考

一、资源地址

Ast反混淆语法在线网址:https://astexplorer.net
Babel官方文档:https://www.babeljs.cn/docs/babel-types#stringliteral
Babel中文文档:https://github.com/jamiebuilds/babel-handbook/blob/master/translations/zh-Hans/README.md
js逆向-ast混淆还原入门案例(1):https://blog.csdn.net/qq_42748190/article/details/106135484

二、遍历

2.1 树结构遍历模式

深度优先 = 先子后兄
广度优先 = 先兄后子

2.2 案例

在这里插入图片描述

三、下载安装

使用npm安装,在doc窗口输入命令安装全局模块

  • npm install -g @babel/core
  • npm install -g @babel/parser
  • npm install -g @babel/template
  • npm install -g @babel/traverse
  • npm install -g @babel/types
  • npm install -g @babel/generator
    在这里插入图片描述

四、案例操作

1、下面是可以遍历的对象类型网址:https://www.babeljs.cn/docs/babel-types
2、下面是可以替换value的数据类型网址:https://www.babeljs.cn/docs/babel-types#stringliteral
3、read.js 代码内容;

var a = 1;
var b = 2;

4、案例代码;

/*
* 安装 npm install @babel/core
* */
 
// 引入 将JS源码转换成语法树 模块
var parser = require("@babel/parser");
// 为parser提供模板引擎
var template = require("@babel/template").default;
// 遍历AST
var traverse = require("@babel/traverse").default;
// 操作节点,比如判断节点类型,生成新的节点等
var t = require("@babel/types");
// 将语法树转换为源代码
var generator = require("@babel/generator").default;
// 引入 操作文件 的模块
var fs = require("fs");
//
var path = require('path');
const { parseArgs } = require("util");
 
// 读取js文件的内容
var jscode = fs.readFileSync("read.js", {
    encoding: "utf-8"
});

var ast = parser.parse(jscode);

// 遍历节点,当遇到下列类型的时候会调用函数
var traverses = {
    VariableDeclarator(path) { //需要遍历的对象类型
        //进入该类型后需要进行的一些操作
        console.log("name = " + path.node.id.name);  // 打印当前节点的对象名称;
        console.log("value = " + path.node.init.value);  // 打印当前节点的对象值;
        path.node.init = t.stringLiteral("xiaozhou");  // 将对象的值修改为字符串类型;
        // debugger;  // 下断点
    }
}

traverse(ast, traverses);  // 传入一个ast对象,遍历对象类型操作的function
var result_code = generator(ast);  // 生成对象修改后的代码;
// debugger;
console.log(result_code.code);

fs.writeFile('decoded.js', result_code.code, (err)=>{});  // 输出文件

5、debugger代码分析;
在这里插入图片描述
6、生成对象修改后的代码;
在这里插入图片描述


总结

以上就是今天要讲的内容,本文仅仅简单介绍了JS逆向的基本工具,请关注我的主页查看更多的逆向博文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web Spider Babel安装 & Ast抽象语法 - 基本使用 的相关文章

  • Js逆向练习制造Token与Id

    前言 闲来无聊 把 Pyhton3网络爬虫开发实战 第二版 看完了Js逆向部分 最后的实战部分感觉挺有挑战性的 正好崔佬也有详细的教程 平时的逆向都是野路子 刚好快回学校了有时间 那为什么不自己动手下呢 下面记录下过程 只会更加详细 观察页
  • Web Spider Babel安装 & Ast抽象语法 - 基本使用

    文章目录 一 资源地址 二 遍历 2 1 树结构遍历模式 2 2 案例 三 下载安装 四 案例操作 总结 提示 以下是本篇文章正文内容 下面案例可供参考 一 资源地址 Ast反混淆语法在线网址 https astexplorer net B
  • 美团滑块模拟登录

    本教程仅限于学术探讨 也没有专门针对某个网站而编写 禁止用于非法用途 商业活动 恶意滥用技术等 否则后果自负 观看则同意此约定 如有侵权 请告知删除 谢谢 aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2
  • js逆向之猿人学-反混淆刷题平台第十八题(jsvmp)

    链接 第十八题 jsvmp 洞察先机 猿人学 内容分析 题目要求 抓取这5页的数字 计算加和并提交结果 接口分析 F12 点击第二页 这里我们能看到有三个请求参数 page t v 一看就能知道 page 页码 t 时间戳 v 加密参数 所
  • 某易云音乐JS逆向案例

    某易云音乐参数破解 目标 aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvc2VhcmNoL20vP3M9JUU2JTg4JTkwJUU5JTgzJUJEJnR5cGU9MQ 某易云音乐是大家喜爱的音乐平台 有小伙伴问我 这
  • Python JS逆向篇(三)

    Python JS逆向篇 三 逆向z参数 js实现 py实现 实战 接口1 接口2 逆向主题 解析出网址里视频下的m3u8链接 注 文章所涉及内容只做学习参考交流 不做除此之外的任何其它用途 新手入门级 参考B站视频系列教程 https w
  • 【2019.05.26】JS逆向——破解 企名片 参数(encrypt_data)爬虫 超级详细

    参考这个博客 作者写的很流畅 一看就是个大佬 要向大佬学习 企名片地址 要获取图中数据 分析请求 根据大佬博客的点拨 我们可以知道这个网站的数据都在这个参数当中 要获取这些数据 我们需要这个网页是怎么把这一段参数解析的 解析参数 encry
  • JavaScript学习 -- ajax方法的POST请求

    在Web开发中 通过POST请求将数据发送给服务器是一种常见的方式 使用jQuery可以轻松地发送POST请求 这需要使用jQuery的ajax 方法 本文将介绍jQuery如何使用POST请求发送数据 并提供一个实际的例子 使用 ajax
  • Android Spider XX兔 Wechat Cookie 校验 注册案例(二)

    声明 此次案例只为学习交流使用 抓包内容 敏感网址 数据接口均已做脱敏处理 切勿用于其他非法用途 文章目录 声明 前言 一 资源推荐 二 任务说明 三 App抓包分析 四 还原JS加密 1 Date类 2 MD5类 3 组合调用还原 api
  • 进制压缩加密_token参数

    进制压缩加密 token参数 网址 https sh meituan com meishi c17 进入抓包 查看要获取的数据 可以在请求地址 找到 getPoiList 的请求链接 请求参数有多个 但是多次请求对比发现只有 token 参
  • 如何安装nvm(nvm 安装教程)

    如何安装nvm nvm 安装教程 一 nvm是什么 nvm是一个node的版本管理工具 可以简单操作node版本的切换 安装 查看等等 与npm不同的是 npm是依赖包的管理工具 二 安装nvm 1 nvm下载地址 https github
  • js逆向--百度滑块验证码

    声明 本文章中所有内容仅供学习交流 不可用于任何商业用途和非法用途 否则后果自负 如有侵权 请联系作者立即删除 由于本人水平有限 如有理解或者描述不准确的地方 还望各位大佬指教 在工作中遇到了百度的滑块 翻了下csdn以及公众号发现没人写
  • JS逆向——一个新的视频爬虫

    仅限技术交流和学习记录 严禁用于任何商业用途 否则后果自负 侵删 个人觉得坑还挺多 但难度不算大的一篇js逆向 来吧 先分析 起初解析pc网页端 感觉有点难度 然后就转到移动网页端了 其实是一模一样的 除了接口和接口非加密参数不一样 所以没
  • 远程RPC+插桩巧解瑞数5,人人都能懂的瑞数(附源码)

    前言 众所周知 rpc对于一些复杂的加密有奇效 我们只需要找到加密函数所在的位置即可通过RPC远程调用 从而省去了扣代码补环境等掉头发过程 本篇以维普期刊为例 一探瑞数的奥秘 1 抓包分析请求接口 通过抓包分析可知 我们要找的url是Sea
  • 天翼云登录逆向

    逆向网址 https m ctyun cn wap main auth login redirect 2Fmy 通过按F12抓包分析 加密的是password 在全局中搜索关键词password 通过断点分析进入Object方法中 通过观察
  • python 爬虫调用 js 的库之 execjs

    python 爬虫调用 js 的库之 execjs 针对现在大部分的网站都是使用 js 加密 js 加载的 并不能直接抓取出来 这时候就不得不使用一些三方类库来执行 js 语句 1 安装 pip install PyExecJS 2 运行环
  • 隐藏selenium的特征

    1 chromedriver exe中的 cdc asdjflasutopfhvcZLmcfl 特征 cdc 是chromedriver exe的一个特征之一 很多网站会通过检测是否有这个特征来判断是否是selenium 解决方案 wind
  • Android Spider JDAX-GUI 反编译工具下载使用以及相关技术介绍

    文章目录 前言 一 JDAX下载 二 基本使用 2 1 解压zip 2 2 Java环境 2 3 进入Dos命令窗口启动Jdax Gui 2 4 正常使用 三 常见的反编译工具以及简单分析介绍 1 Android Killer 2 Dex2
  • js逆向-国密SM2初探

    目录 前言 目标网站 加密分析 加密定位 结尾 本文仅供学习使用 切勿非法使用 如有侵权请联系作者及时删除 前言 无意中看到一个网站采用国密SM2算法进行登陆参数进行加密 之前接触的加密基本都是国外的算法 例如RSA DES MD5等等 国
  • Python JS逆向篇(一)

    Python JS逆向篇 一 效果实现 思路 最后一步 逆向 p a HmacSHA256 t s a state commonStore cupid sign key JS实现 py实现 先苦后甜 逆向主题 51job请求头headers

随机推荐

  • 【算法修炼】优先队列

    优先队列 一 最后一块石头的重量 简单 二 数组中两元素的最大乘积 简单 三 根据字符出现频率排序 中等 四 找到和最大的长度为k的子序列 简单 优先队列 也称为堆 Heap 它可以在保证队列的结构下 对队列的内部元素进行排序 可以按照某个
  • Windows上通过CMake编译COLMAP源码操作步骤

    COLMAP源码 https github com colmap colmap 最新的稳定版本位于master分支 最新的开发版本位于dev分支 这里使用master分支进行编译 commit id为1555ff0 官方推荐使用vs2019
  • 高速计数器学习

    S7 1200 CPU 提供了最多 6 个 1214C 高速计数器 其独立于 CPU 的扫描周期进行计数 可测量的单相脉冲频率最高为 100KHz 双相或 A B 相最高为 30KHz 除用来计数外还可用来进行频率测量 高速计数器可用于连接
  • LeetCode刷题复习

    内容参考CyC大佬的LeetCode复习指南 算法思想复习 在考虑更优解时 先从数据状况入手 一般C 1s可以运行 1 0 7 1 0 8 10 7 10 8 107 108次 看有何特点可以利用 如有序 回文 重复 推公式等 1 1双指针
  • spring boot 如何配置Logback

    在 Spring Boot 项目中 Logback 是默认的日志框架 要配置 Logback 你需要创建一个名为 logback spring xml 的配置文件并将其放在项目的 src main resources 目录下 以下是一个详细
  • Unity设置物体旋转角度误区

    小白欢迎评论 共同探讨 共同进步 第一篇Unity的博文 这篇很短 接下来会陆续更新笔记本上之前记得坑 在这里有一个小误区 一般新手都非常容易出的错误 设置物体位置我们都是给transform position赋值 那么问题来了 设置物体的
  • ubuntu 12.04新安装好后需要进行的包升级和清理工作

    根据这么多次的操作经验 我发现 ubuntu系统在新安装好后需要进行一些包的升级和清理工作 不然的话 后续安装各种软件都不顺畅 会出现各种各样的问题 需要进行的包升级和清理工作其实很简单 只需要执行以下两条命令即可 apt get f in
  • 视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake““G2OConfig.cmake“ in CMAKE_MODULE_PATH错误

    第一步 这时需要在cmakelist文件中更改几行代码 代码如下 将LIST APPEND CMAKE MODULE PATH PROJECT SOURCE DIR cmake list APPEND CMAKE MODULE PATH X
  • Datawhale 李宏毅机器学习 Task2

    一 回归的定义和举例 定义 Regression 就是找到一个函数 function 通过输入特征 x 输出一个数值 Scalar 举例 股市预测 输入 过去10年股票的变动 新闻咨询 公司并购咨询等 输出 预测明天股市的平均值 自动驾驶
  • 【牛客网】BC146 添加逗号

    一 题目描述 牛客网题目链接 添加逗号 牛客题霸 牛客网 描述 对于一个较大的整数 N 1 lt N lt 2 000 000 000 比如 980364535 我们常常需要一位一位数这个数字是几位数 但是如果在这 个数字每三位加一个逗号
  • 在区块链里打模组化新概念,ALL要彻底实现技术融合并不容易!

    点击上方 蓝色字 可关注我们 编辑 铅笔盒 在今年的达沃斯论坛上 区块链与AI 3D打印等技术一起被列为第四次科技革命的重要技术 有人质疑加密货币 但几乎没有人否认区块链 可以预见接下来的一段时间所有焦点都将聚集在这个行业 区块链技术并不成
  • lua基础——基本语法

    类型 lua是动态类型语言 即变量的类型可以变 通过type可以测试给定变量的类型 下面是例子 python view plain copy print type helloworld
  • OLED拼接屏,有这5大优势,让其在会议商业及影院中常用

    OLED拼接屏是一种高端的显示屏 它由多个OLED屏幕拼接而成 可以实现更大尺寸的显示效果 在北京 OLED拼接屏已经被广泛应用于商业展示 会议室 电影院等场所 成为了展示和传播信息的重要工具 OLED拼接屏的优势 在于其高清晰度 高亮度
  • pandoc markdown 转 word

    安装 https www pandoc org installing html pandoc f markdown t html test md pandoc f html t docx o output docx
  • 软件设计师---下午题2

    下午题2 实体 弱实体 子实体 属性 复合属性 主键属性 联系 两个实体之间的联系 三个实体之间的联系 问题1 问题2 关系模式和主外键 一对一联系转换 一对多联系转换 多对多联系转换 三个实体的联系转换 实体和子实体的转换关系模式 实体
  • 159_模型_Power BI 地理分析之形状地图

    159 模型 Power BI 地理分析之形状地图 声明以下地图元素仅供学习交流所用 如需地图公开使用请提前做好报审工作 一 背景 当企业的体量达到一定体量的时候 保持稳定的增长是非常重要的事情 本案例展示如何用 Power BI 的形状地
  • GO语言入门学习(超详细的教程)-01

    GO入门教程 既然学一门语言首先我们就是要了解这个语言可以干什么 有什么作用 其优势在哪 喜欢自己看资料的同学我推荐这个网站 Go 语言结构 菜鸟教程 runoob com 写的特别详细 下面是我自己对这个语言的一些理解和想法 其中内容也基
  • JS 树形数据处理

    树形结构数据 let arr platformId 461417688549658625 platformName 蘑菇小姐的测试平台 roles roleId 968589 roleName 平台管理员 platformId 419419
  • 嵌入式 QT QListWidget 显示列表视图的小部件类

    目录 1 添加对象 2 设置间距 3 获取内容 4 删除对象 5 更改对象内容 在Qt框架中 QListWidget是一个用于显示列表视图的小部件类 它提供了一种方便的方式来显示和管理项目列表 QListWidget可以显示文本 图像和其他
  • Web Spider Babel安装 & Ast抽象语法 - 基本使用

    文章目录 一 资源地址 二 遍历 2 1 树结构遍历模式 2 2 案例 三 下载安装 四 案例操作 总结 提示 以下是本篇文章正文内容 下面案例可供参考 一 资源地址 Ast反混淆语法在线网址 https astexplorer net B