首页 > TAG信息列表 > ast

莫比乌斯反演学习笔记

前置知识 数论分块 一些基础数论知识 积性函数 定义:如果一个数论函数 \(f(x)\),对于任意的在其定义域中的 \(x,y\),满足 \(f(xy)=f(x)f(y)\ \ (\gcd(x,y)=1)\),则称 \(f(x)\) 为积性函数(Multiplicative Function)。 若 \(f(xy)=f(x)f(y)\),则称其为完全积性函数(Completely Multipl

struts2的ognl表达式注入漏洞

原理就是对用户的参数没有进行过滤,导致恶意参数直接传入到ognl的方法中命令执行 ognl不仅可以执行简单计算(首先生成一个ongl上下文,context) ongl还可以对类和对象进行操作。 通过context来put的对象都会放入value属性中,穿进去的字符串就是该属性中的key,通过#key的形式来指定对象

console.log调试变量,发现有问题

注意: 我们调试代码时,除了debugger还有consolelog即clog方式;简单的代码可能就直接clog调试了。 但是有个问题,比如说我们在const ast = parse(template.trim(), options)代码后,打印ast     但是clog一个引用数据类型,在后续optimize(ast, options)会对变量ast做修改, 所以,当我们我

vue源码阅读—07—编译原理之parse

ast树是一个js对象,ast树是对模板的一种描述; 类似于vnode是对真实dom的一种描述, ast树是对模板的一种描述;     注意: 我们调试代码时,除了debugger还有consolelog即clog方式;简单的代码可能就直接clog调试了。 但是有个问题,比如说我们在const ast = parse(template.trim(), options)

理解虚拟DOM

什么是虚拟DOM     虚拟DOM是对真实DOM的抽象,它表现为一个JavaScript对象,该对象的属性存储了某个节点所包含的信息,如标签名、标签用到的HTML属性、子元素对象等,来描述一个DOM元素,存储在内存中。每次页面重新渲染时,会先使用VNode类去实例化不同类型的DOM节点,生成vnode实例,然后

pve安装时候出现找不到 ast_dri.so,无法启动 x server 解决方案.

报错大概如下; X.Org X Server 1.20.13 X Protocol Version 11, Revision 0 Build Operating System: linux Ubuntu Current Operating System: Linux research-1 5.4.0-100-generic #113-Ubuntu SMP Thu Feb 3 18:43:29 UTC 2022 x86_64 Kernel command line: BOOT_IMAGE=/vmlinu

V8引擎如何运行代码

V8引擎如何运行代码 1. 第一步 生成AST语法树 第一阶段是分词(tokenize),又称为词法分析,其作用是将一行行的源码拆解成一个个 token。所谓 token,指的是语法上不可能再分的、最小的单个字符或字符串。你可以参考下图来更好地理解什么 token。 第二阶段是解析(parse),又称为语法分析,其作

SAST

本文转载:https://xz.aliyun.com/t/10216 SAST(Static Application Security Testing):静态应用程序安全测试技术,通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。 目前有多款静态代码检测的开源项目,通过对几款项目的调研,

利用ast和jscodeshift统计项目文件中接口重复使用率

第一阶段: 由于有的接口最多只有两层 /xx/xx,所以查找出所有接口截取最后两层进行统计 grep -Er 'ur[il]\s*\=|url:|action\=' ./src | awk -F "[\'\`]" '{print $2}'| grep -Eo "(\/[^\/]+){2}$" |sort | uniq -c | sort -r 这样的话有几个问题:1、yy/xx/xx 和 xx/

新一代构建工具(1):对比rollup/parcel/esbuild—esbuild脱颖而出

文章内容来源: 字节前端是如何基于 ESBuild 的做现代化打包设计? https://mp.weixin.qq.com/s/bS_qwiOIMqFN1sfuPKTUbA 新世代建置工具解析(esbuild、Snowpack、Vite、wmr) https://andyyou.github.io/2021/04/25/new-generation-of-build-tools-comparsing/ Esbuild 为什么那么快

govaluate规则引擎原理解析

序言 首先明确引入规则引擎的目的是, 从 if... else ...中解放出来。规则引擎可依据不同项目进行选型,本次主要分享bsp中使用到的govaluate规则引擎。 其输入为规则表达式和k-v键值对条件对象,通过规则引擎执行表达式,得到表达式的结果。 AST Abstract Syntax Tree简称AST,中文叫做

初识CEL(一)

一、cel简介 1.1 什么是CEL CEL是一种非图灵的完整表达式语言,被设计为快速、可移植和安全执行。CEL可以单独使用,也可以嵌入到一个更大的产品中。 CEL被设计成一种可以安全执行用户代码的语言。虽然在用户的python代码上盲目地调用eval()是危险的,但你可以安全地执行用户的CEL代码。

【JS 逆向百例】AST 脱混淆实战,某 ICP 备案号查询接口 jsjiami v6 分析

关注微信公众号:K哥爬虫,持续分享爬虫进阶、JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请在公众号联系我立即删除! 逆向目标 目标:站 Z 之家网站

TypeScript AST Viewer All In One

TypeScript AST Viewer All In One type ItemType = string | number | object | Array<any> | null; // type ItemType = string | number | object | any[] | null // interface Array<T> interface ObjectInterface { // dynamic key type [key: string]: I

babel使用

Babel 的三个主要处理步骤分别是: 解析(parse),转换(transform),生成(generate)1.解析步骤接收代码并输出 AST2.转换步骤接收 AST 并对其进行遍历,在此过程中对节点进行添加、更新及移除等操作。 插件就是在这部分介入工作3.代码生成步骤把最终(经过一系列转换之后)的 AST 转换成字符串形式的

浅析狄利克雷卷积

定义 狄利克雷卷积是定义在数论函数间的一种二元运算: \[(f\ast g)(n)=\sum_{xy=n}f(x)g(y) \]也等价于下面这种形式: \[(f\ast g)(n)=\sum_{d\mid n}f(d)g(\frac{n}{d}) \]性质 若 \(f,h\) 是积性函数,则 \(f\ast g\) 也是积性函数 狄利克雷卷积满足交换律 \[(f\ast g)(n)=\sum_

JavaScript运行原理

浏览器渲染过程 HTML解析的时候遇到了JavaScript标签,会停止解析HTML,而去加载和执行JavaScript代码。  常见的JavaScript引擎 SpiderMonkey:第一款JavaScript引擎,由Brendan Eich开发(也就是JavaScript作者);Chakra:微软开发,用于IT浏览器;JavaScriptCore:WebKit中的JavaScript引擎,Apple公

58同城面试盘点

58同城面试盘点 1.一张订单表,有user_name,order_id,order_time,order_amount 四个字段,怎么取出每个用户2021年10月以来第一个订单的金额(下单时间格式为’yyyy-MM-dd HH:mm:ss’)? select user_name, order_id, order_amount from( select user_name, order_id, order_am

编译三个步骤

在传统编译语言的流程中,程序中的一段源代码在执行之前会经历三个步骤,统称为“编译”。 1、分词/词法分析(Tokenizing/Lexing) 这个过程会将由字符组成的字符串分解成(对编程语言来说)有意义的代码块,这些代码块被称为词法单元。 2、解析/语法分析(Parsing) 这个过程是将词法单元流(

从0到1手写babel插件

概要 当我们对babel工作原理有了较为深入的了解后,我们就可以根据日常的业务场景开发一些实用的babel插件用于优化我们的业务代码,使我们打包后的代码更加小巧快速。这篇文章主要介绍如何实现babel插件的开发,从0到1手摸手,成为大佬不是梦。 餐前准备 一顿好的饭菜不仅需要高超的技

lambda解释器_Lambda Interpreter

代码参考: 200行JS代码实现lambda解释器 PP大佬代码 解释器构造 一个lambda interpreter主要由一下几个方面构成: 词法分析器(Lexer):将字符流分解为符号流(token流)语法分析器(Parser):根据语法,利用符号流构建抽象语法树AST语法解释器/语法制导的翻译(Interpreter):遍历处理AST,进行对语法

vue 快速入门 系列 —— 模板

其他章节请看: vue 快速入门 系列 模板 前面提到 vue 中的虚拟 dom 主要做两件事: 提供与真实节点对应的 vNode 新旧 vNode 对比,寻找差异,然后更新视图 ①、vNode 从何而来? 前面也说了声明式框架只需要我们描述状态与 dom 之间的映射关系。状态到视图的转换,框架会给我们做。 ②、

关于ASTER L1T产品介绍及预处理流程

最近在处理ASTER L1T数据,但是网上关于这种级别的数据介绍资料比较少、零碎,查阅了很多文献、资料,处理的都是L1A和L1B数据,历时一个星期,总结出来这份笔记,希望能对你以及以后的自己有所帮助,另一方面通过码字来增强自己的记忆,为后续科研铺路,如有不足之处,敬请批评指正。 首先介

SQL 解析原理和使用场景

SQL解析是一项复杂的技术,一般都是由数据库厂商来掌握,由于这几年MySQL数据库中间件的兴起,需要支持读写分离、分库分表等功能,就必须从SQL中抽出表名、库名以及相关字段的值。因此像Java语言编写的Druid,Go语言编写的Kingshard等,都会对SQL进行部分解析   我们部门最近做的星云平台,

某酷ckey签名生成算法系列--(四)ast代码字符串反混淆与回填

某酷ckey签名生成算法系列--(四)ast代码字符串反混淆与回填 上一篇中,我们已经把控制流完全去掉了,但是存在的字符串混淆,依然阻挡了调试的脚本,本篇文章尝试对这部分进行还原,减少调试点击的次数 最明显的形如上面图片中的代码,加密字符串En最终异或解密赋值给Ne,使用ast的话可