- 在前期博文《Vue进阶(八十四):vue中Computed 和 Watch的使用和区别》中,讲解了vue中Computed 和 Watch的使用和区别,其中,只是介绍了computed如何计算元素属性,并未介绍如何方法传参。本篇博文主要讲解下如何利用computed的计算属性进行传参。 场景引入 在前端项目开发过程中,会遇到码值转换应用场景,且不同页面会存在复用码值... 在前期博文《Vue进阶(八十四):vue中Computed 和 Watch的使用和区别》中,讲解了vue中Computed 和 Watch的使用和区别,其中,只是介绍了computed如何计算元素属性,并未介绍如何方法传参。本篇博文主要讲解下如何利用computed的计算属性进行传参。 场景引入 在前端项目开发过程中,会遇到码值转换应用场景,且不同页面会存在复用码值...
- &nbs... &nbs...
- 在 反混淆插件五 这篇文章中,介绍了 options 的一些功能,忘记介绍如何删除空行了。也很简单,注意 retainLines 这个即可,代码如下: const output = generator(ast,opts = {"retainLines":true},code); 也可以利用 UltreEdit 这个工具的 正则替换来删... 在 反混淆插件五 这篇文章中,介绍了 options 的一些功能,忘记介绍如何删除空行了。也很简单,注意 retainLines 这个即可,代码如下: const output = generator(ast,opts = {"retainLines":true},code); 也可以利用 UltreEdit 这个工具的 正则替换来删...
- 插件功能 获取实参,计算出全局函数调用的结果,并用结果替换该全局函数的调用表达式。 处理实例 处理前: var a = parseInt("12345",16),b = Number("123"),c = String(true),d = unescape("hello%2CAST%21");eval("a = 1"); 处理后: var a&nb... 插件功能 获取实参,计算出全局函数调用的结果,并用结果替换该全局函数的调用表达式。 处理实例 处理前: var a = parseInt("12345",16),b = Number("123"),c = String(true),d = unescape("hello%2CAST%21");eval("a = 1"); 处理后: var a&nb...
- 实战地址 http://match.yuanrenxue.com/match/14 抓包分析 地址栏输入 地址,按下F12并回车,发现数据在这里: 没有加密参数,看看cookie字段: 有三个加密的字段,看上一个接口: http://match.yuanrenxue.com/api/match/14/m cookie请求是这样的: 带着 ... 实战地址 http://match.yuanrenxue.com/match/14 抓包分析 地址栏输入 地址,按下F12并回车,发现数据在这里: 没有加密参数,看看cookie字段: 有三个加密的字段,看上一个接口: http://match.yuanrenxue.com/api/match/14/m cookie请求是这样的: 带着 ...
- “继续学习操作AST” 我们今天来看看,如何将一个 BinaryExpression 类型的节点转换成 CallExpression 类型 的节点。即将代码: var a = 123 | 456; 转换为: var a = function (s, h) { return s | h;}(123, 456); 为什么要这么做,因为一个BinaryExpr... “继续学习操作AST” 我们今天来看看,如何将一个 BinaryExpression 类型的节点转换成 CallExpression 类型 的节点。即将代码: var a = 123 | 456; 转换为: var a = function (s, h) { return s | h;}(123, 456); 为什么要这么做,因为一个BinaryExpr...
- 本文缘由 随着反爬的升级,前端的JavaScript代码越来越难以阅读,一个简单的字符串声明竟然可以拆分成多行代码,虽然并不会给动态调试带来困难,但是在静态分析时着实让人难受。明明一行代码可以搞定的事情,偏偏写成了十行甚至百行,代码冗余非常严重。 我们以下面的代码为例,来讲讲如何还原。 for (var e = "\u0270\u026D\u0274\u0274\... 本文缘由 随着反爬的升级,前端的JavaScript代码越来越难以阅读,一个简单的字符串声明竟然可以拆分成多行代码,虽然并不会给动态调试带来困难,但是在静态分析时着实让人难受。明明一行代码可以搞定的事情,偏偏写成了十行甚至百行,代码冗余非常严重。 我们以下面的代码为例,来讲讲如何还原。 for (var e = "\u0270\u026D\u0274\u0274\...
- 前言 &n... 前言 &n...
- 代码样本 打开著名的JavaScript在线混淆网站: https://obfuscator.io/ 按照它给的原代码: // Paste your JavaScript code herefunction hi() { console.log("Hello World!");}hi(); 选择下图所示的选项,其他的不变: 然后点击 Obf... 代码样本 打开著名的JavaScript在线混淆网站: https://obfuscator.io/ 按照它给的原代码: // Paste your JavaScript code herefunction hi() { console.log("Hello World!");}hi(); 选择下图所示的选项,其他的不变: 然后点击 Obf...
- 以下内容来源于babel官方网站关于generator的介绍: https://babeljs.io/docs/en/babel-generator 所给的示例代码如下: import { parse } from "@babel/parser";import generate from "@babel/generator"; const code = "cl... 以下内容来源于babel官方网站关于generator的介绍: https://babeljs.io/docs/en/babel-generator 所给的示例代码如下: import { parse } from "@babel/parser";import generate from "@babel/generator"; const code = "cl...
- “今天来学习下怎么将简单的CallExpression 类型进行处理。” 昨天写了这篇文章 JavaScript 代码混淆实战(二):将 BinaryExpression 类型转换为 CallExpression 类型,今天来看看它的逆过程。 如何将下面的代码: var Xor = function (p,q){ return p ^ q;} let a = ... “今天来学习下怎么将简单的CallExpression 类型进行处理。” 昨天写了这篇文章 JavaScript 代码混淆实战(二):将 BinaryExpression 类型转换为 CallExpression 类型,今天来看看它的逆过程。 如何将下面的代码: var Xor = function (p,q){ return p ^ q;} let a = ...
- 读取JavaScript源文件 因为是对源代码进行处理,因此需要读取源文件。当然代码也可以直接放进处理文件中,但是有些代码非常多,不太适合,因此这里使用读取文件的方式来获取源代码。 代码如下 let encode_file = "./encode.js",decode_file = "./decode_result... 读取JavaScript源文件 因为是对源代码进行处理,因此需要读取源文件。当然代码也可以直接放进处理文件中,但是有些代码非常多,不太适合,因此这里使用读取文件的方式来获取源代码。 代码如下 let encode_file = "./encode.js",decode_file = "./decode_result...
- 通过操作AST的节点,既可以将混淆的代码变清晰,也可以将清晰的代码变的混淆。说白了,就是通过操作节点来达到目的。 我在之前的文章中介绍了如何处理十六进制、中英文Unicode字符串或数值,也就是将十六进制格式或者Unicode转换为直观的字符串。这篇文章的目的是一个逆过程。 阅读本文章之前,请熟读这篇文章: JavaScript反混淆插件一:处理十六进制、... 通过操作AST的节点,既可以将混淆的代码变清晰,也可以将清晰的代码变的混淆。说白了,就是通过操作节点来达到目的。 我在之前的文章中介绍了如何处理十六进制、中英文Unicode字符串或数值,也就是将十六进制格式或者Unicode转换为直观的字符串。这篇文章的目的是一个逆过程。 阅读本文章之前,请熟读这篇文章: JavaScript反混淆插件一:处理十六进制、...
- 上篇文章讲解了如何操作FRIDA进行内存的读写,今天试试用objection来进行内存的读写。 github地址: https://github.com/sensepost/objection 继续以上篇文章的apk进行学习,请开启frida服务。 通过objection命令启动apk进程: objection -g com.yaotong.crackme ... 上篇文章讲解了如何操作FRIDA进行内存的读写,今天试试用objection来进行内存的读写。 github地址: https://github.com/sensepost/objection 继续以上篇文章的apk进行学习,请开启frida服务。 通过objection命令启动apk进程: objection -g com.yaotong.crackme ...
- Node.js并不是一个新的开发语言,更不是一个JavaScript框架,而是一个基于Chrome V8引擎的JavaScript运行环境。Node.js使用的是事件驱动模型。 Node.js的底层是使用C/C++编写的,如: Chrome V8引擎是用C++编写的,负责将JavaScript代码转换成机器码。线程池使用C语言编写的、全特性的异步I/O库libeio,... Node.js并不是一个新的开发语言,更不是一个JavaScript框架,而是一个基于Chrome V8引擎的JavaScript运行环境。Node.js使用的是事件驱动模型。 Node.js的底层是使用C/C++编写的,如: Chrome V8引擎是用C++编写的,负责将JavaScript代码转换成机器码。线程池使用C语言编写的、全特性的异步I/O库libeio,...
上滑加载中
推荐直播
-
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中 -
华为云码道:零代码股票智能决策平台全功能实战2026/04/18 周六 10:00-12:00
秦拳德-中软国际教育卓越研究院研究员、华为云金牌讲师、云原生技术专家
利用Tushare接口获取实时行情数据,采用Transformer算法进行时序预测与涨跌分析,并集成DeepSeek API提供智能解读。同时,项目深度结合华为云CodeArts(码道)的代码智能体能力,实现代码一键推送至云端代码仓库,建立起高效、可协作的团队开发新范式。开发者可快速上手,从零打造功能完整的个股筛选、智能分析与风险管控产品。
回顾中
热门标签