- 博客(25)
- 收藏
- 关注
原创 VUE 笔记
1. vue基础1.1 vue简介1.1.1 官网英语官网中文官网1.1.2 介绍与描述是什么? Vue 是一套用来动态构建用户界面的渐进式JavaScript框架 ,简单来讲就是将一堆数据 ==> 人可以看的页面构建用户界面:把数据通过某种办法变成用户界面渐进式:Vue可以自底向上逐层的应用,简单应用只需要一个轻量小巧的核心库,复杂应用可以引入各式各样的Vue插件作者:尤雨溪1.1.3 vue特点采用组件化模式,提高代码复用率、且让代码更好维护(一个.vue就
2023-07-28 18:36:50 326
原创 ast还原ob6-控制流平坦化还原
2.在拿到while语块的兄弟节点,也就是上图中红蓝箭头所指的那两块,返回的是一个数组。1.先取出while语块,是那一大块。
2023-07-19 11:44:39 170
原创 ast还原ob4-对象调用还原
参考: https://jia666666.blog.csdn.net/article/details/120287559v。从代码中可以看出来,拿到了遍历的对象的名字,对象的绑定以及对象里存放的(key,value)数组。已经拿到了调用对象的属性名和值(key和value)以及调用的参数,接下来就是函数调用的还原。字符串就不再赘述了,里面的一些具体操作需要自己在ast解析网站中去具体分析才行。如何判断遍历的定义对象是否应该被删除?到此,对象调用还原结束!4.1 先拿到对象的定义。
2023-07-19 11:38:01 100
原创 ast还原ob3-拆分对象的合并
这一步就很简单了,只需要对path作用域里的赋值语句进行遍历,如果遍历(_path)的左边的变量名与path遍历的变量名一致就说名匹配成功,匹配成功之后就可以将其写入到path的值数组里面了。将赋值语句改完之后就可以进行分散对象的合并了。首先考虑的是谁被重新赋值,就是那个。
2023-07-17 20:37:37 142 1
原创 ast还原ob2-解密函数的执行
大家都知道,一个标准的ob混淆主要分成四大部分从上图可以知道,这份代码中也是存在多级return函数的,所以要先进行第一步,过程不再赘述,执行完之后的结果如下:还原之后对解密函数的匹配果然是更多了,足足有101次匹配,这也再一次验证了我的猜测。
2023-07-17 20:33:34 404 1
原创 ast还原ob1-多级return返回处理
拿到的是一个数组,对数组进行遍历(使用map函数),传入的是一个回调函数,第一个参数就是遍历的数组存放的path节点,拿到path节点后再取它的。经过多次的实验,并没有办法能够确定准确的次数,因为结果一次函数的处理得到的结果很可能还要经过另一个函数进行处理。从这个集合中删除,只有当这个集合个数为空(也就是0)时,就可以停止循环遍历。该函数名的位置,这个位置就是我们想要的调用该函数的位置。那么如何才能拿到真正的调用的js代码,并且验证呢?,正如上面输出的结果来看,当输出。这个函数的调用也有两个特征,
2023-07-16 16:30:52 180 1
原创 算法设计与分析
算法(algorithm)是一系列解决问题的明确指令,也就是说,对于符合一定规范的输入,能够在有限时间内获得要求的输出;算法的性质:有穷性、确切性、输入项、输出项和可行性。算法运行所需要的计算机资源的量,包括时间资源和空间资源;紧渐近界记号θ:如果函数t(n)包含在θ(g(n))中,记作t(n)∈ θ(g(n))。即对于所有足够大的n,t(n)的上界和下界都由g(n)的常数倍所确定也就是说,存在大于0的常数c1,c2和非负的整数n0,使得:对于所有的n≥n0来说,c2g(n)≤t(n)≤c1g(n)
2023-05-11 13:32:17 211
原创 猿人学——05 js混淆 乱码增强 详解
到此,关于请求已经完成,我们可以回过头想一想,为什么要传入m与f两个参数,f可以理解,用于记录请求时的时间,那么m是干什么的呢?通过上面生成cookie时的分析可知,使用了aes加密,aes加密使用到了明文以及密钥,且经过测试,明文以及密钥都是动态变化的密钥是由时间戳_$is生成的,后端想要解密就必须要知道密钥,所以将_$is以m的形式传到了后端明文数组的最后一个参数同样也用到了_$is还要注意,当自己模拟生成且程序不报错之后并不代表就是正确的,要传入一个固定的参数用于测试自己的程序是否正确才行。
2023-04-10 20:22:06 236
原创 停车场问题——栈和队列
要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0) 其中:'A’表示到达,'D’表示离去,'E’表示输入结束。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),实验环境: devc++
2023-03-26 19:51:44 1457
原创 查找与排序
*将数组分为已排序区和未排序区,因为是从小到大排列,所以从未排序区中找出一个元素插入到已排序区,要插入的数值越小,向前拱的能力就越强 **比根节点小的放到左节点,比根节点大的放到右节点,由此构成的二叉树通过进行中序遍历后得到的是从小到大的顺序进行排列的。就是把数组下标为0的,元素空下来, 不存放具体的元素, 而是存放要查找的元素. 这样在查找的过程中, 采用倒序。简单来讲就是,选择一个数组的位置,对位置之后的元素进行遍历,将后面最小的元素放到该位置上。,到底是左闭右闭还是左闭右开,在此统一都是左闭右闭。
2023-03-26 18:28:21 48
原创 图的基本概念
图是一种非线性的数据结构,表示多对多的关系。图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。在图中需要注意的是:线性表和树可以看做特殊的图。线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(有穷非空性)
2023-03-26 18:27:09 3182
原创 二叉树的定义及常用操作
二叉树的结点记录当前节点的值,还有两个指针域分别指向两个子结点;而通过一个结点的指针来表示创建二叉树的根结点,通过两个指针域的遍历可以得到整棵二叉树的值//1.结构定义//节点int val;//值域//两个指针域,分别指向左右两个节点Tree表示的是树的根节点。
2023-03-26 18:18:55 636
原创 js逆向——webpack扣法
是个静态模块打包工具,目的是为了让前端工程师写的前端代码变成浏览器可以识别的代码,并且可以达到前端项目的模块化,也就是如何更高效地管理和维护项目中的每一个资源。这是因为加载器函数实际上是在你打开网页的时候就已经加载到内存中了,而只有当我们进行登录这一具体操作时才会执行调用这个函数,所以这时是找不到加载器的。直接把大对象给传进去了,而是在另一个独立的文件里面,那么加载器又是如何对另一份独立的文件中的模块进行加载的呢?但是,当断到我们想要的目标函数时再去定位n(“”)函数哪里是显示不出来的,如图。
2023-03-19 23:21:38 4958 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人