- 实战地址 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,...
- 1、this JavaScript中的this,总是指向一个对象 ,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被声明时的环境。 this的指向大致可以分以下4种: 作为对象的方法调用作为普通函数调用构造器调用Function.prototype.call或Function.prototype.apply调用 1、作为对象的方法调用 var... 1、this JavaScript中的this,总是指向一个对象 ,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被声明时的环境。 this的指向大致可以分以下4种: 作为对象的方法调用作为普通函数调用构造器调用Function.prototype.call或Function.prototype.apply调用 1、作为对象的方法调用 var...
- 封装的目的是为了将信息隐藏。JavaScript中并没有像其他编程语言那样提供相应的关键字来支持,所以Javascript只能依赖变量的作用域来实现封装特性,只能模拟出public和private两种封装特性。 除了ECMAScript6中提供的let之外,通常我们用函数来创建作用域: var myObject = (function(){ var name = '... 封装的目的是为了将信息隐藏。JavaScript中并没有像其他编程语言那样提供相应的关键字来支持,所以Javascript只能依赖变量的作用域来实现封装特性,只能模拟出public和private两种封装特性。 除了ECMAScript6中提供的let之外,通常我们用函数来创建作用域: var myObject = (function(){ var name = '...
- AOP即面向切面编程,把一些跟核心业务逻辑模块无关的功能抽离出来,如日志统计、安全控制、异常处理等。把它们抽离出来后,通过“动态织入”的方式掺入业务逻辑模块中。在Java中,可以通过反映和动态代理机制来实现AOP技术,而在JavaScript中实现AOP技术就是把一个函数“动态织入”另一个函数之中。以下通过Function.prototype来实现: <!DOC... AOP即面向切面编程,把一些跟核心业务逻辑模块无关的功能抽离出来,如日志统计、安全控制、异常处理等。把它们抽离出来后,通过“动态织入”的方式掺入业务逻辑模块中。在Java中,可以通过反映和动态代理机制来实现AOP技术,而在JavaScript中实现AOP技术就是把一个函数“动态织入”另一个函数之中。以下通过Function.prototype来实现: <!DOC...
- WebView漏洞: ** WebView 中的 addJavascriptInterface()接口** JS调用Android的其中一个方式是通过addJavascriptInterface接口进行对象映射: // 参数1:Android的本地对象 // 参数2:JS的对象 // 通过对象映射将Android中的本地对象和JS中的对象进行关联,从而实现JS调用... WebView漏洞: ** WebView 中的 addJavascriptInterface()接口** JS调用Android的其中一个方式是通过addJavascriptInterface接口进行对象映射: // 参数1:Android的本地对象 // 参数2:JS的对象 // 通过对象映射将Android中的本地对象和JS中的对象进行关联,从而实现JS调用...
上滑加载中
推荐直播
-
香橙派AIpro的远程推理框架与实验案例
2025/07/04 周五 19:00-20:00
郝家胜 -华为开发者布道师-高校教师
AiR推理框架创新采用将模型推理与模型应用相分离的机制,把香橙派封装为AI推理黑盒服务,构建了分布式远程推理框架,并提供多种输入模态、多种输出方式以及多线程支持的高度复用框架,解决了开发板环境配置复杂上手困难、缺乏可视化体验和资源稀缺课程受限等痛点问题,真正做到开箱即用,并支持多种笔记本电脑环境、多种不同编程语言,10行代码即可体验图像分割迁移案例。
即将直播 -
鸿蒙端云一体化应用开发
2025/07/10 周四 19:00-20:00
倪红军 华为开发者布道师-高校教师
基于鸿蒙平台终端设备的应用场景越来越多、使用范围越来越广。本课程以云数据库服务为例,介绍云侧项目应用的创建、新建对象类型、新增存储区及向对象类型中添加数据对象的方法,端侧(HarmonyOS平台)一体化工程项目的创建、云数据资源的关联方法及对云侧数据的增删改查等操作方法,为开发端云一体化应用打下坚实基础。
即将直播
热门标签