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
  • python爬虫之js逆向(一)

    python爬虫之js逆向 一 写在前面 现在各种反爬手段很多 虽然我在工作的时候并没有遇到过 我的工作就是爬虫 但是基本上都是爬外网 google 都是企业级爬虫 很少像这样写垂直爬虫 在平时的技术交流群中经常看到大神们说一些我没遇到过的
  • 美团滑块模拟登录

    本教程仅限于学术探讨 也没有专门针对某个网站而编写 禁止用于非法用途 商业活动 恶意滥用技术等 否则后果自负 观看则同意此约定 如有侵权 请告知删除 谢谢 aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2
  • JavaScript学习 -- ajax方法的POST请求

    在Web开发中 通过POST请求将数据发送给服务器是一种常见的方式 使用jQuery可以轻松地发送POST请求 这需要使用jQuery的ajax 方法 本文将介绍jQuery如何使用POST请求发送数据 并提供一个实际的例子 使用 ajax
  • js逆向-某蜓有声小说获取音频url地址

    声明 本文仅供参考学习 禁止用于其他用途 违者后果自负 前言 目标网站 aHR0cHM6Ly93d3cucWluZ3RpbmcuZm0v 小说链接 aHR0cHM6Ly93d3cucWluZ3RpbmcuZm0vY2hhbm5lbHMvND
  • 威feng网站的aes算法破解

    网站是 aHR0cHM6Ly93d3cuZmVuZy5jb20v 话说这个网站在过年前使用了aes算法 当然过年后也是aes 但就是把秘钥换了 换成更需要解密一段字符串 然后获得秘钥 最后请求时候再去用这个秘钥加密 并且最后发现秘钥和偏移是
  • js逆向之加密方法远程调用

    js逆向之加密方法远程调用 加密方法的远程调用主要是使用了RPC协议 RPC Remote Procedure Call 是远程调用的意思 RPC的应用十分广泛 比如在分布式中的进程间通信 微服务中的节点通信 我们这里使用的rpc其实是实现
  • JS逆向 -- 开发者工具介绍

    一 打开方式 1 通过快捷键F12 2 通过浏览器设置打开 二 常用的功能 1 元素 显示前端的相关东西 2 控制台 可以动态获取某些变量的值 比如获取当前页面的cookie值 3 源代码 动态调试的时候用到 可以下断点查看堆栈等相关操作
  • js逆向-某市公共资源交易网

    目标网站首页 aHR0cDovL2dnenkuendmd2IudGouZ292LmNu 分析页面 aHR0cDovL2dnenkuendmd2IudGouZ292LmNuL3h3engvaW5kZXhfMi5qaHRtbA 话不多说 开始今
  • 如何安装nvm(nvm 安装教程)

    如何安装nvm nvm 安装教程 一 nvm是什么 nvm是一个node的版本管理工具 可以简单操作node版本的切换 安装 查看等等 与npm不同的是 npm是依赖包的管理工具 二 安装nvm 1 nvm下载地址 https github
  • JS逆向之网易云音乐

    文章目录 1 目标网站 2 初步分析 3 定位加密参数生成位置 4 编码测试 4 1 定义AES加密方法 4 2 调用两次AES加密获取params 4 3 获取歌曲的url 4 4 单曲下载初步测试代码 4 5 飙升榜单音乐批量抓取 文章
  • js逆向-导出md5加密方法实战(简单)

    简单的随机找一个网站密码加密方法 1 先在登陆页面随便输入账号密码 发送个包 看提交的数据 有password 发现是加密 而且密文是32位 初步猜测是md5 如图 2 复制标记 password 搜索 如图 排除掉hm js 这个是百度统
  • 远程RPC+插桩巧解瑞数5,人人都能懂的瑞数(附源码)

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

    python调用js文件生成参数 JS逆向 安装exejs与nodejs 调用js生成参数 JS逆向 我就随便找了一个网站https cloud kingdee com passport auth login 随手输入一个账号密码 抓包后发
  • 前程无忧guid、acw_sc__v2

    文章目录 声明 目标网站 acw sc v2分析 python调用测试 话外拓展 风控浅析 往期逆向文章推荐 声明 本文章中所有内容仅供学习交流 严禁用于商业用途和非法用途 否则由此产生的一切后果均与作者无关 若有侵权 请私信我立即删除 目
  • Python爬虫之Js逆向案例(3)-X品牌手机社区

    声明 XX手机社区加密逆向分析仅用于研究和学习 这篇文章的学习内容是以XX手机社区为案例 对JS逆向的整个过程进行详细分析 下面会进行以下几步进行分析 下方演示过程全部使用chrome浏览器 锁定关键接口 锁定关键字段 破解关键字段 pyt
  • js逆向-ast-hook定位参数生成位置

    声明 本文仅供参考学习 切勿用于其他途径 违者后果自负 前言 不了解ast hook的小伙伴可以翻看上一篇文章 链接 ast hook 以一个简单的网站为例 网址 aHR0cHM6Ly93d3cueGluaXVkYXRhLmNvbS8 接口
  • 隐藏selenium的特征

    1 chromedriver exe中的 cdc asdjflasutopfhvcZLmcfl 特征 cdc 是chromedriver exe的一个特征之一 很多网站会通过检测是否有这个特征来判断是否是selenium 解决方案 wind
  • js逆向-某旗小说

    声明 本文仅供学习参考 请勿用于他途 违者后果自负 前言 笔者一直是一个小说控 喜欢看小说很多年了 自从学会了python后 就经常会去不同的小说网站抓取小说保存到本地阅读 最近发现一本很好看的小说 准备抓下来看 却发现有请求参数和返回的接

随机推荐

  • 【算法修炼】优先队列

    优先队列 一 最后一块石头的重量 简单 二 数组中两元素的最大乘积 简单 三 根据字符出现频率排序 中等 四 找到和最大的长度为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