《封号码罗》python爬虫之AST在js逆向中删除冗余代码(二十)

《封号码罗》python爬虫之AST在js逆向中switch-case反控制流平坦化(二十二) js逆向-switch-case反控制流平坦化 阅读详情
const fs = require("fs");//文件读写
const parse = require("@babel/parser"); //解析为ast
const traverse = require('@babel/traverse').default;//遍历节点
const t = require('@babel/types');//类型
const generator = require('@babel/generator').default;//ast解析为代码


const code = `
const a = 1;
const b = a * 2;
const c = 2;
const d = b + 1;
const e = 3;
console.log(d)
`
// 	默认为 script,当代码中含有 import 、export 等关键字时会报错,需要指定为 module
const ast = parse.parse(code, {sourceType: "module"})
// 删除多余变量,首先要了解 NodePath 中的 scope,scope 的作用主要是:
// 查找标识符的作用域、获取并修改标识符的所有引用等,删除未使用变量主要用到了 scope.getBinding() 方法,
// 传入的值是当前节点能够引用到的标识符名称,返回的binding对象其关键属性有以下几个:
//
// identifier:标识符的 Node 对象;
// path:标识符的 NodePath 对象;
// constant:标识符是否为常量;
// referenced:标识符是否被引用;
// references:标识符被引用的次数;
// constantViolations:如果标识符被修改,则会存放所有修改该标识符节点的 Path 对象;
// referencePaths:如果标识符被引用,则会存放所有引用该标识符节点的 Path 对象。
// 所以我们可以通过 constantViolations、referenced、references、referencePaths 多个参数来判断变量是否可以被删除

function replace_delete(path) {
    const binding = path.scope.getBinding(path.node.id.name);
    if (!binding || binding.constantViolations.length > 0) {
        return;  // 如果表是否被修改过,则不能进行删除
    }
    if (!binding.referenced) {
        path.remove()  // 标识符是否被引用,未被引用时可删除
    }

    // if (binding.references === 0) {
    //     path.remove();  // 引用次数为0,可以删除节点,注意:remove后面是有括号的
    // }
    // if (binding.referencePaths.length === 0) {
    //     path.remove()  // 所有引用该标识符节点的Path对象个数为0时,可删除节点
    // }
}

const visitor = {
    VariableDeclarator: {
        enter: [replace_delete]
    }
}

traverse(ast, visitor)
const result = generator(ast, {jsescOption: {"minimal": true}}).code
console.log(result)

备注:学习K哥AST笔记

Monica:本地化AI浏览器如何重构人机交互范式 浏览器作为人机交互的核心入口,其本质正从‘内容展示工具’演进为‘意图执行引擎’。随着大模型轻量化与网页语义理解技术突破,本地运行的AI代理开始具备实时解析DOM、结构化提取信息、自然语言驱动操作的能力。这类技术不再依赖云端推理,规避了数据上传风险,同时通过WebDOM Tokenizer、量化小模型(如TinyLlama-1.1B)和隐蔽JS注入等手段,在隐私前提下实现高精度网页自动化。它已渗透电商监控、法律条款分析、教育自适应等强场景,标志着AI交互正从‘搜索—点击—浏览’转向‘说即所做’。Monica正 阅读详情

相关推荐

ast-hook用于js逆向根据参数值快速定位到生成加密参数位置

ast-hook用于js逆向根据参数值快速定位到生成加密参数位置

ast-hook-for-js-RE 浏览器内存漫游

浏览Github中发现的一个好项目项目github地址:https://github.com/CC11001100/ast-hook-for-js-RE。一个非常好的项目,大家可以多给作者star支持一下。Github需要科学上网,所以在这里克隆了一下仓库到国内。

逆向新手的博客 4726

ast-hook-for-js-RE:浏览器内存漫游解决方案(探索中...)

浏览器内存漫游解决方案(JS逆向) 一,什么鬼标题?到底是个啥鬼? 简单的说,这是一个浏览器端的内存漫游解决方案,可以通过此工具你可以随意检索浏览器内存中的数据(标题党警告一次),默认看到这个项目的人都是会点逆向的,所以可以简单理解为这是一个是浏览器版本的异议,此处的浏览器特指Chrome浏览器,实际上在写代码的时候我也并没有考虑兼容的其他浏览器。:) 二,功能列表 本项目刚刚立项,内存漫游功能并非特别完善(其实只有一个功能...),目前已开发的功能: 变量级抓包监控,根据加密参数秒秒钟定位到加密逻辑的代码位置(追随加密逻辑代码位置的通杀方案) 计划开发的功能: 指定切入点,基于AST分析依赖实现简单的自动扣代码(暂未发布,还在预测编码中,最终形态可能会有所变动,当然也很有可能会放鸽子...) 基础的定位功能的兼容性一直在搞咋也搞不完,上面那条就当我吹牛笔了... 目前TODO v0.3功

爬虫逆向笔记:AST-HOOK 内存漫游(ast-hook-for-js-re 安装测试)

2、第二个报错处 3、第三个报错处 4、安装完成所有依赖模块后,就可以正常运行了

qq_49268524的博客 3031

Python | 处理CMIP6 NC数据,以tas为例

各位同学,一般在文章最后一章我们可能会做不同气候情景下变量的未来时空变化特征,类似上图。从cmip6下载的nc数据常需要转换格式、裁剪到研究区和重采样等,本期代码可以解决这类问题。

qq_48539301的博客 1384

UniApp实战:从文件下载到本地保存与预览的一站式解决方案

本文深入解析了UniApp开发中文件下载、保存与预览的完整流程,提供了基于uni.downloadFile、uni.saveFile和uni.openDocument API的一站式实战解决方案。文章详细拆解了核心API的使用方法、多平台(App、H5)的兼容性处理、常见坑点(如文件路径、权限、格式支持)以及进阶优化技巧(如进度提示、文件管理),旨在帮助开发者构建健壮、用户体验良好的跨平台文件处理功能。

d3e4f的博客 614

ast-hook-for-js-RE 项目安装与使用教程

ast-hook-for-js-RE 项目安装与使用教程 1. 项目的目录结构及介绍 ast-hook-for-js-RE/ ├── github/ │ └── ISSUE_TEMPLATE/ ├── images/ │ └── README_images/ ├── src/ │ ├── api-server/ │ ├── components/ │ ├── proxy-ser...

gitblog_00731的博客 700

在PLC中将十六进制数据转换为浮点数(通常遵循IEEE 754标准)需要理解数据存储格式,并按以下步骤操作:

通过以上步骤,您可以在PLC中实现十六进制到浮点数的转换。T DBD20 // 将数据传送到浮点数变量(如DB1.DBD20)指数位(8位):实际指数 = 存储值 - 127(偏移量)。:必须确认PLC的存储顺序(大端或小端),否则结果错误。将两个16位寄存器合并为32位数据,需注意。尾数位(23位):隐含前导1,实际值为。:确保32位数据在寄存器中连续且对齐。符号位(1位):0表示正,1表示负。:高位寄存器在前(如西门子PLC)。:低位寄存器在前(如三菱FX系列)。,误差因截断导致)。

K11mvp的博客 4416

《封号码罗》python爬虫之AST在js逆向中删除冗余的if-else代码(二十一)

js逆向-删除冗余的if-else代码

Python_DJ的博客 585

5g LDPC编译码-LDPC编码

本文摘要:LDPC编码是5G业务信道的核心编码技术,属于线性分组码。5G中LDPC编码分为两种基图类型(BG1和BG2),通过码块分割、CRC处理等步骤实现。编码过程主要涉及校验矩阵生成和校验位计算,其中校验矩阵采用稀疏矩阵结构。文中详细介绍了5G LDPC编码的具体实现流程,包括码块分割规则、校验位生成方法,以及两种基图(BG1和BG2)在矩阵结构和参数设置上的差异,重点阐述了通过模块化方法求解校验比特位的技术路径。

weixin_38270585的博客 1364

Unity 工具 之 ZXing QRCode 二维码的生成和识别(可设置生成不同颜色的/带图标的二维码)

Unity 基础 之 ZXing QRCode 二维码的生成和识别(可设置生成不同颜色的/带图标的二维码) 目录 Unity 基础 之 ZXing QRCode 二维码的生成和识别(可设置生成不同颜色的/带图标的二维码) 一、简单介绍 二、实现原理 三、注意实现 四、效果预览 五、ZXing.net ( zxing.unity.dll ) 插件下载 六、实现步骤 七、关键代码 一、简单介绍 Unity 开发中,自己整理的一些游戏开发可能用到的功能,整理归档,方便游...

仙魁XAN 9824

安装nodejs实现ast-hook-for-js-RE内存漫游

----------tips:如果设置好模块的安装路径后,使用npm install xx模块发现失败了,可以到你安装node的文件夹右键,打开属性--安全--勾选全部权限确定即可!5,安装完成后,按照视频来启动anyproxy安装证书,给浏览器设置代理,启动anyproxy服务即可实现hook操作。4,在解压后的ast-hook-for-js-RE-master文件夹下,点击上方地址栏 输入cmd,打开cmd界面,2,nodejs环境安装没问题后,cmd界面下输入命令。

sen_sir12138的博客 742

022、Conv-BN-SiLU 基础卷积块:构造函数参数计算,前向传播的 PyTorch 逐行实现

本文详细解析了Conv-BN-SiLU卷积块的实现细节与注意事项。作者从调试经历出发,指出bias参数冗余会导致数值不稳定,强调卷积层应设置bias=False。文章对比了SiLU与ReLU的特性差异,逐行分析了构造函数参数计算(包括自动填充、分组卷积等)和前向传播过程,特别讲解了BN层与SiLU激活的数值特性。最后分享了三个实践中的常见问题:BN的momentum设置、SiLU输出范围的影响,以及分组卷积的通道对齐要求,并提供了卷积与BN融合的推理优化技巧。全文聚焦实际工程实现中的关键细节,具有较强实操指

ai技术增长的博客 217

ast-hook快速定位js参数生成位置

ast-hook内存漫游 原理 就是将js加载过程中的变量值全部存储下来,在控制台进行hook搜索可以快速定位到js代码生成的地方 下载 git clone https://github.com/CC11001100/ast-hook-for-js-RE.git # 也可以在我的csdn中下载 https://download.youkuaiyun.com/download/lingyingdon/85283776 配置 安装依赖(node版本至少到14.0.0+) # 直接全局安装(这种安装在最

程序烂人的博客 4641

5步VS传统WinForm!AntdUI让界面设计从“土味”到“超模”只需30秒?

摘要:墨瑾轩编程教程《AntdUI的5大魔法步骤》详解如何将传统WinForm升级为现代化UI。教程通过5个核心步骤:安装AntdUI库、控件替换、主题定制、复杂布局构建及实战案例演示,对比传统开发与AntdUI在美观度(动态阴影/动画)、开发效率(拖拽组件VS手工绘制)和主题定制(一键换肤VS重写控件)的显著差异。使用C#代码示例展示按钮动画、3D翻转、聊天界面等特效实现,帮助开发者快速掌握这一基于Ant Design风格的WinForm增强框架。(150字)

java专栏 1125

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Squirrel-RIFE常见问题解决方案:从安装到使用的完整排错

Squirrel-RIFE是一款基于RIFE算法的中文视频插帧软件,能够将视频帧率提升至60fps甚至更高,让视频播放更加流畅丝滑。本文将为你提供从安装到使用的完整排错指南,解决Squirrel-RIFE视频插帧过程中可能遇到的各种问题,帮助你快速上手这款强大的视频补帧工具。 ## 🔧 安装与配置常见问题 ### 1. 系统要求与驱动安装 Squirrel-RIFE需要Windows 10

gitblog_00027的博客 541

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

AST Hook for JS RE 项目常见问题解决方案

AST Hook for JS RE 项目常见问题解决方案 一、项目基础介绍及主要编程语言 AST Hook for JS RE 是一个开源项目,旨在提供浏览器内存漫游解决方案,主要应用于JavaScript逆向领域。该项目通过AST(抽象语法树)Hook技术,实现对浏览器中JavaScript代码的实时监控和分析。项目使用的主要编程语言是JavaScript。 二、新手在使用项目时需特别注意的问...

gitblog_00898的博客 582

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

js hook 改进

js批量hook 参考hook 我们可以更改上次的脚本,用来遍历所有的函数来找出其中是否有以加密命名的函数,来尝试找到js中的加密函数,参考自http://bbs.nightteam.cn/thread-210.htm 我们用它的代码测试一下,我们自己的网站 (function() { 'use strict'; !function () { 'use strict'; var source = ['alert','decodeData','String.fr

大数据安全技术学习 739

AST还原实战|某芯片网站中级混淆js还原思路分析

✧✧本篇文章只用于学习交流,切勿用于商业用途,如果侵犯权益,请与作者联系,本人会在第一时间将其删除。✧✧一.js地址'aHR0cHM6Ly93d3cudGkuY29tLmNuL3JBUy...

Python3 爬虫实战 1:应对特殊字体,爬取猫眼电影实时排行榜 1965

两大js调试工具的安装

nodejs的调试工具node-inspect和浏览器内存漫游工具ast-hook-for-js-RE的安装

小小明-代码实体的专栏 2476

ast-hook-for-js-RE:革命性浏览器内存漫游解决方案,让JS逆向不再困难

ast-hook-for-js-RE是一款基于AST Hook技术的浏览器内存漫游解决方案,专为JavaScript逆向工程师设计。它能够实时监控浏览器内存中的变量变化,帮助开发者快速定位加密参数的生成位置,极大简化JS逆向过程中的代码定位工作。 ## 什么是浏览器内存漫游技术? 简单来说,ast-hook-for-js-RE是一个浏览器端的内存漫游工具,借助此工具你可以随意检索浏览器内存中的

gitblog_00276的博客 383

探索gina.vim核心功能:异步任务处理与交互式界面深度剖析

gina.vim是一款专为Neovim/Vim 8设计的异步Git仓库控制插件,它通过非阻塞的任务执行和直观的交互界面,帮助开发者在编辑器中高效管理Git工作流。无论是提交代码、查看差异还是管理分支,gina.vim都能提供流畅的操作体验,让你无需频繁切换终端与编辑器。 ## 异步任务处理:告别编辑器卡顿 gina.vim的核心优势在于其**异步任务处理**能力。传统Git插件往往会阻塞Vim

gitblog_00913的博客 760

从0到1精通AMQP:Elixir开发者必须掌握的RabbitMQ核心功能详解

AMQP是一个强大的消息队列协议,而GitHub加速计划中的amqp1/amqp项目则为Elixir开发者提供了一个地道的RabbitMQ客户端。这个Elixir客户端基于Erlang RabbitMQ 3/4客户端(AMQP 0.9.1)构建,其API借鉴了Clojure客户端Langohr的设计,让Elixir开发者能够轻松高效地与RabbitMQ进行交互。 ## 快速上手:AMQP客户端安

gitblog_00818的博客 861

逆向进阶,利用 AST 技术还原 JavaScript 混淆代码

什么是 AST AST(Abstract Syntax Tree),中文抽象语法树,简称语法树(Syntax Tree),是源代码的抽象语法结构的树状表现形式,树上的每个节点都表示源代码中的一种结构。语法树不是某一种编程语言独有的,JavaScript、Python、Java、Golang 等几乎所有编程语言都有语法树。 小时候我们得到一个玩具,总喜欢把玩具拆解成一个一个小零件,然后按照我们自己的想法,把零件重新组装起来,一个新玩具就诞生了。而 JavaScript 就像一台精妙运作的机器,通过 AST

Tips的博客 9204

【亲测免费】 浏览器内存漫游解决方案(探索中)使用教程

浏览器内存漫游解决方案(探索中)使用教程 1. 项目介绍 1.1 项目概述 ast-hook-for-js-RE 是一个浏览器端的内存漫游解决方案,旨在帮助开发者检索和监控浏览器内存中的数据。该项目特别适用于JavaScript逆向工程,可以实现变量级别的抓包监控,帮助开发者快速定位加密逻辑的代码位置。 1.2 功能列表 变量级抓包监控:根据加密参数秒秒钟定位到加密逻辑的代码位置。 计划开发的功...

gitblog_00810的博客 1228
上一篇: 《封号码罗》python爬虫之AST在js逆向中表达式计算(十九)
下一篇: 《封号码罗》python爬虫之AST在js逆向中删除冗余的if-else代码(二十一)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值