瑞数五代ast反混淆笔记一

news/2024/7/19 10:43:03 标签: 笔记, 爬虫, javascript

第一部分 瑞数五代ast反混淆笔记


文章目录

  • 前言
  • 一、分析第一层js文件
  • 二、转换为switch-case
  • 三、效果图
  • 总结


前言

瑞数五代的反混淆做了很久了,当时写的很复杂,也没有记笔记,现在看代码都看不懂了,重新归顺下逻辑思路


一、分析第一层js文件

第一层js文件是在html页面里的,分析结构,其实是一个大数组,加几个while循环的控制流

  1. 大数组包含了五个数组,对应while的数量,
  2. 有一个起始值,就是大数组上面那个值,第一个while就是取 大数组[0][起始值] 作为控制流条件的开始
    在这里插入图片描述
    while下面的第一行代码是作为条件值的变量,来判断走哪个if分支,if语句中的条件可以得到这个变量所属的范围在这里插入图片描述
    如果是else语句,那么它的条件范围就 in [父节点if中条件范围] and not in [兄弟节点if中条件范围]
    根据这些范围就可以得到每个语句中的变量的值应该是多少。
    还有一些坑,就是一些肯定不会走到的地方,比如说
javascript">if(k > 10){
	if (k == 5){
	}else if(k == 4){
	}else if(k == 11){
	}else{
	}
}

k == 11 这个语句一定是不会执行的,所以要注意这个地方,这是个无效语句

二、转换为switch-case

步骤基本是这样的:

  1. 首先拿到while语句中if条件中变量的名称
  2. 创建一个对象存储case值及对应的case语句
  3. 然后根据if语句中的条件范围与父节点及兄弟节点的范围来进行确认这个节点对应的条件值是多少,然后把存入上面的对象中
  4. 最后根据第二步的对象创建出一个switch case 节点来替换掉while下面的block节点

三、效果图

在这里插入图片描述

总结

while 转 switch-case


http://www.niftyadmin.cn/n/5228936.html

相关文章

leetCode 78.子集 + 回溯算法 + 图解

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1…

前端位运算

1 当一个数字被向左推了n位时&#xff0c;意味着该数字被乘以2的n次方。25 << 3 200 (25 * 2 power 3) 2 我们将一个数字向右移1位时&#xff0c;它就将该数字除以2 位运算&#xff5c; 二进制表2000010400010080010001601000032100000 他们都是只有一位为1其余位都为…

MySQL通配符和正则表达式

一、通配符 1.% 匹配0&#xff0c;1&#xff0c;多个字符&#xff0c;但不匹配NULL 2._ 匹配单个字符 3.[charlist] 匹配字符列中的任何单一字符 4.[^charlist] 或 [!charlist] 匹配不在字符列中的任何单一字符 二、正则表达式 通配符的LIKE替换为REGEXP LIKE 匹配整个列&…

【Python】基础练习题_组合数据类型_2

dictMenu f’卡布奇洛’:32,‘摩卡’:30,‘抹茶蛋糕’:28,‘布朗尼’:26}&#xff0c; dictMenu 中存放了你的双人下午套餐&#xff08;包括咖啡2份和点心2份)的价格,请编写程序,让Python帮忙计算并输出消费总额。 dictMenu {卡布奇洛: 32, 摩卡: 30, 抹茶蛋糕: 28, 布朗尼: 2…

用户注册这样玩,保你平安

前言 基本上每个系统系统都包含用户注册、发送验证码等基本操作。在前些年&#xff0c;我还记得我在逛 csdn、贴吧、网易新闻等网站的时候是可以不登陆也能浏览完网页内容的&#xff0c;但是近几年这些网站已经改成了不登陆不让用&#xff0c;浏览网页时不时提醒你要进行登录&…

Java小游戏 王者荣耀(简易版)

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…

打开ITK-SNAP遇到找不到vcruntime140_1.dll

今天在自己的windows笔记本上下载了一个itk-snap&#xff0c;发现打不开&#xff0c;缺少这个文件&#xff0c;网上有那么几类方法。 重装vs&#xff0c;这个太麻烦了&#xff0c;我必然是不会装的安装第三方软件&#xff0c;这个听起来。。很扯&#xff0c;我也不会安装的直接…

【Jmeter性能测试】ForEach控制器的用法解析

引言 最近我在进行JMeter性能测试时遇到了一些问题&#xff0c;特别是在使用ForEach控制器时感到有点棘手。 但是经过不断地摸索和实践&#xff0c;终于成功地掌握了这个神奇的工具&#xff0c;提高了我的测试效率。因此&#xff0c;今天我想和大家分享我的经验&#xff0c;让…