JS解混淆-AST还原案例

2023-11-19

一、js混淆了解
1、为什么要混淆?
  • js混淆的作用:为了防止爬虫通过分析js内容,轻易的还原出网站的加密逻辑,而做出的安全防御手段之一,常常将一个逻辑简单的可能十几行算法代码思路,通过变量混淆替换、增加冗余无效代码、增加无限debugger反调试功能、增加多层的套娃式if~else代码、以及埋陷阱等混淆成几千行的js代码,给人第一印象难读,对入门分析者造成恐惧心理
  • 如图,我们常见的ob混淆就是这个原理,左侧也就5行的代码,经过ob混淆这么一个操作,就有了右侧很多_0x开头的字符串/函数混淆的代码,逻辑调用分析难度增加,是反爬的常用手段
    在这里插入图片描述
    在这里插入图片描述
2、常见的混淆模样(ob/sojson/jsfuck/AAencode/jjEncode/eval)
  • 拿输出hello world为例子,常见的混淆有这6种:ob混淆、sojson混淆、eval混淆、jsfuck混淆、AAEncode混淆、jjEncode混淆,用的比较多的混淆是ob混淆、sojson混淆、eval混淆这三种

    function hi() {
        console.log("Hello World!");
    }
    hi();
    
  • ob混淆ob混淆网址
    在这里插入图片描述

  • sojson混淆sojson混淆网址
    在这里插入图片描述

  • eval混淆eval混淆网址
    在这里插入图片描述

  • jsfuck混淆: jsfuck官网混淆网址jsfuck混淆网址,常用解决方法,鼠标将光标放到最后一个括号位置,找到对称的高亮的括号,将两个括号的内容复制出来,用eval执行试试,或者直接控制台打印输出看看
    在这里插入图片描述
    在这里插入图片描述

  • AAEncode混淆:AAEncode混淆网址,常用解决方法去除末尾(‘_’),加上toSting()
    在这里插入图片描述

  • jjEncode混淆jjEncode混淆网址,常用方法去除末尾(),加上toSting()
    在这里插入图片描述

  • eval、ob、sojson混淆案例应用

二、AST初步认识
  • ast 又称 抽象语法树, 比如将js代码已树节点的形式展现,有点类似html源码的各个标签父子关系,关于ast的介绍可以进一步看这篇文章

  • ast的作用:ast作用主要是将混淆的难读的js还原成可读性高的js,对整个js的逻辑不做任何改变,你可以理解为化繁为简,可见性的瘦身,也许网页上是1w多行的混淆代码,瘦身后只有不到1千行;脱混淆后要注意替换到网页试试看能否能用
    在这里插入图片描述

  • 初次入门尝试体验案例,一般是打开可视化显示AST结构工具分析节点;处理逻辑:就是一颗树,不停的找分支,确定当前分支的各个属性特性,即定位要改的节点就是找type,然后对该type节点操作即可,你可以简单理解为html里面找到了父标签然后对子标签进行操作,理解为xpath或者css选择器的逻辑也不为过
    在这里插入图片描述

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

JS解混淆-AST还原案例 的相关文章

随机推荐

  • Linux Touch命令的8种使用技巧

    Linux touch命令不仅可以用于在Linux上创建空文件 您可以使用它来更改现有文件的时间戳 包括其访问权限和修改时间 本文介绍了8种可以通过Linux终端使用touch命令的方案 我们在Ubuntu 18 04 LTS Ubuntu
  • Stable Diffusion背后原理(Latent Diffusion Models)

    前言 2023年第一篇博客 大家新年好呀 这次来关注一下Stable Diffusion背后的原理 即 High Resolution Image Synthesis with Latent Diffusion Models 这篇论文 之前
  • Vc/MFC中自定义消息及其PostMessage触发使用

    http blog csdn net ztz0223 article details 2058402 http blog csdn net a8082649 article details 7733527 http bbs csdn net
  • chatgpt赋能python:Python写一个抽奖程序:从随机数生成到实现

    Python写一个抽奖程序 从随机数生成到实现 Python是当今最热门的编程语言之一 无论是开发网站 进行数据分析 实现机器学习 还是进行游戏开发 Python都可以胜任 在本文中 我们将介绍如何使用Python编写一个简单的抽奖程序 程
  • 文件上传 华为云服务器,文件上传云服务器

    文件上传云服务器 内容精选 换一换 HPC是高性能计算 High Performance Computing 的简称 通常指以计算为目的 使用了很多处理器的单个计算机系统或者使用了多台计算机集群的计算机系统和环境 能够执行一般个人电脑无法处
  • djangorestframework 序列化

    djangorestframework 序列化 序列化常用字段参数 1 选项参数 name serializers CharField min length 3 max length 20 max length 最大长度 min lengh
  • Matplotlib画条形图和柱形图并添加数据标注

    这里放上我比较喜欢的一种条形图设置 使用的是之前爬取的重庆地区链家二手房数据 数据如下 链接 https pan baidu com s 17CMwUAdseO8tJWHEQiA8 A 提取码 dl2g import pandas as p
  • java list stream 去除 null_Stream流的这些操作,你得知道,对你工作有很大帮助

    Stream流 Stream 流 是一个来自数据源的元素队列并支持聚合操作 元素是特定类型的对象 形成一个队列 Java中的Stream并不会存储元素 而 是按需计算 数据源 流的来源 可以是集合 数组等 聚合操作类似SQL语句一样的操作
  • 信号和槽

    1 信号和槽是一种高级接口 应用于对象之间的通信 它是QT的核心特性 也是QT区别于其它工具包的重要地方 信号和槽是QT自行定义的一种通信机制 2 moc Meta ObjectCompiler QT工具 该工具是一个C 预处理程序 它为高
  • Charles 安装及配置,详细步骤

    一 安装激活 1 1 下载 https www charlesproxy com download 1 2 激活 打开Charles gt Help gt Register Charles gt 输入 Registered Name htt
  • 2020.11.13 奇偶链表

    2020 11 13 奇偶链表 题目描述 给定一个单链表 把所有的奇数节点和偶数节点分别排在一起 请注意 这里的奇数节点和偶数节点指的是节点编号的奇偶性 而不是节点的值的奇偶性 请尝试使用原地算法完成 你的算法的空间复杂度应为 O 1 时间
  • Java:List<Map>指定Key去重,差集(针对集合里面只有Map非实体对象)

    ListMap去重 差集 针对集合里面只有Map非实体对象 问题 由于业务需求 接口的入参出参都是List格式 对于有些查出来的数据 为了防止重复的数据 需要对集合去重 以下分享一种去重的方法 该方法可根据指定字段对List
  • 最全 VxLAN 知识详解

    什么是VXLAN VXLAN Virtual eXtensible Local Area Network 虚拟扩展局域网 是由IETF定义的NVO3 Network Virtualization over Layer 3 标准技术之一 是对
  • 容器修改完成的镜像打包到自己的docker hub

    容器修改完成的镜像打包到自己的docker hub 一 步骤 首先 我们基于当前的容器进行了修改 比如 我们首先创建了一个Ubuntu的容器 然后在容器当中安装了python3 安装了Django框架 安装NGINX服务器 安装了mysql
  • rt-thread中使用WebClient WebNet总结 http学习

    HTTP学习资料 1 需求背景 WebClient主要用来传输文件 WebNet用来支持cgi接口 需要支持get post put delete方式 2 webnet中使用 2 1 webnet存在问题 2 11 rt thread 使用
  • Web基础 HTML标签 六种超链接标签的使用方式

    超链接标签 重点 1 链接的语法格式 a href 跳转目标链接 target self 文本或图像 a a 标签里的a是单词anchor的的缩写 意为 锚 两个属性的作用如下 属性 作用 href 用于指定链接目标的url地址 必须属性
  • 【物联网毕设基础】NBIOT 窄带物联网

    文章目录 1 简介 2 NBIOT简介 3NB的型号介绍 3 1 BC95 3 2 BC35 3 3 BC28 3 4 BC26 3 5 BC20 3 6 BC30 4 NB物联网卡 5 OpenCPU 6 BC260模块详解 6 1 基本
  • 【周末闲谈】二进制VS三进制

    个人主页 个人主页 系列专栏 周末闲谈 周末闲谈 第一周 二进制VS三进制 文章目录 周末闲谈 前言 一 效率 二 三进制计算机 三进制计算机的最后 总结 前言 作为计算机是20世纪最先进的科学技术发明之一 对人类的生产活动和社会活动产生了
  • yolov7 onnx tensorrt 批量预测 全网首发

    目录 deepstream yolov7 mask yolov5的TensorRT部署 动态batch 开源tensorrt 调研笔记 tensorrt 加载模型batch size为 1的原因
  • JS解混淆-AST还原案例

    目录 一 js混淆了解 1 为什么要混淆 2 常见的混淆模样 ob sojson jsfuck AAencode jjEncode eval 二 AST初步认识 三 解混淆常用的方法 一 js混淆了解 1 为什么要混淆 js混淆的作用 为了