基于 Babel 对 JS 代码进行混淆与还原操作的网站 JS 代码混淆与还原 (kuizuo.cn) 还原前言 AST 仅仅只是静态分析,但可以将还原出来的代码替换原来的代码,以便更好的动态分析找出相关点...在还原时,并不是所有的代码都能还原成一眼就识破代码执行逻辑的,ast 也并非万能,如果你拥有强大的 js 逆向能力,有时候动态调试甚至比 AST 静态分析来的事半功倍。...1,而这对应 js 中也就是true与false,所以也可以遍历这部分的代码,然后将其还原成 Boolean,像这种表达式就不细说了(有点类似 jsfuck),ast 结构自行分析。...运行还原后的代码 最终整个还原后的代码可以在newCode.js中查看,但到目前为止还没有测试还原后的代码到底能否正常运行,或者是替换节点导致语法错误,所有就需要将还原后的代码与混淆过的代码替换运行这样才能测试的出来...JS 混淆与还原的网站 针对上述还原操作其实还不够明显,于是就编写了一个在线对 JS 代码混淆与还原的网站(主要针对还原)– JS 代码混淆与还原 (kuizuo.cn) 其实也就是对上述的还原代码进行封装成工具使用
Velero 是怎样对 Kubernetes 资源实现备份还原的-工作原理每个 Velero 操作——按需备份、定时备份、还原——都是一个自定义资源,用 Kubernetes 自定义资源定义(CRD)定义并存储在...Velero 还包括处理自定义资源以执行备份、还原和所有相关操作的控制器.可以备份或还原集群中的所有对象,也可以按类型、命名空间和/或标签筛选对象.Velero 非常适合灾难恢复用例,以及在集群上执行系统操作...例如,使用 backed-up API versions 来验证还原资源将在目标集群上工作RestoreController 启动还原过程,每次都会对每个符合条件的资源进行还原默认情况下,Velero...执行的是非破坏性还原,意味着它不会删除目标集群上的任何数据。...,请参见 还原参考页面Backed-up API versionsVelero 使用 Kubernetes API 服务器对每个 group/resource 的首选版本备份资源。
当时,随着 Node.js 的兴起,Facebook 内部对于转换 JS 已经有相当多的工程实践了。所以实现 JSX 简直轻而易举,仅仅花费了大概一周的时间。 ...既然包含状态,那么记下旧 DOM 的状态然后在新 DOM 上还原不就行了么? 但是非常不幸,这种方式不仅实现起来复杂而且也无法覆盖所有情况。 在 OSX 电脑上滚动页面时,会伴随着一定的滚动惯性。...如果它来自其他域,那么浏览器安全策略限制根本不会允许我们查看其内部的内容,更不用说还原了。 因此可以看出,DOM 不仅仅有状态,它还包含隐藏的、无法触达的状态。...既然还原状态行不通,那就换一种方式绕过去。 对于没有改变的 DOM 节点,让它保持原样不动,仅仅创建并替换变更过的 DOM 节点。 这种方式实现了 DOM 节点复用(Reuse)。...如果用更轻量级的 JS 对象来代替复杂的 DOM 节点,然后把对 DOM 的 diff 操作转移到 JS 对象,就可以避免大量对 DOM 的查询操作。这种方式称为 Virtual DOM 。 ?
性能指标对比以下各项对比取至Linux上各引擎测试数据包加载耗时速度对比(越低越好)使用引擎执行业务JS代码,其中JSC和V8均是直接执行JS代码,QuickJS和Hermes是执行Bytecode。...图片QuickJS一骑绝尘,Hermes紧跟其后,JSC次之,V8最差;执行效率对比(越高越好)使用引擎跑一些开源的算法或者知名JS功能库。...,以QB首页Feed流(3.8M左右)举例,JSC和V8均输入原始js文件,QuickJS和Hermes输入JS编译后的Bytecode文件。...JS引擎接口报的异常JSC引擎和V8处理逻辑不太一样,JSC的JSI接口会将Exception通过参数传递出来,V8是通过在调用上下文初始化TryCatch对象,对异常进行捕获;所以对于JSC的JS异常...附A New Bytecode Format for JavaScriptCore | WebKit深入浅出JavaScriptCore - 知乎OSR(On-Stack Replacement)是怎样的机制
前言 不知道大家有没有想过这样一个问题,我们所写的 JavaScript 代码是怎样被计算机认识并且执行的呢?这中间的过程具体是怎样的呢?...有的同学可能已经知道,Js 是通过 Js 引擎运行起来的,那么 什么是 Js 引擎? Js 引擎是怎样编译执行和优化 Js 代码的?...今天我们主要来分析一下比较主流的 V8 引擎是怎样运行 Js 的。 V8 引擎 在介绍 V8 引擎的概念之前,我们先来回顾一下编程语言。编程语言可以分为机器语言、汇编语言、高级语言。...用于 Google Chrome(Google 的开源浏览器) 以及 Node.js 等。 CPU 是如何执行机器指令的? 将高级语言转化为机器语言之后,CPU 又是怎样执行的呢?...完整的分析一段 JavaScript 代码是怎样被执行的 1、初始化基础环境 V8 执行 Js 代码是离不开宿主环境的,V8 的宿主可以是浏览器,也可以是 Node.js。
逆向过程 本次逆向的目标同样是一个登录接口,其中的加密 JS 使用了简单的混淆,可作为混淆还原的入门级教程,来到登录页面,随便输入账号密码进行登录,其中登录的 POST 请求里, Form Data 有个加密参数...# @Software: PyCharm # @describe: 混淆还原小脚本 # ================================== # 待替换的值(太多了,仅列出少部分)...] # 混淆后的 JS with open("fm_old.js", "r", encoding="utf-8") as f: js_lines = f.readlines() js = "..."Qo00o[{}]".format(item.index(i)) js = js.replace(str_old, '"' + i + '"') # 还原后的 JS with open("...将 JS 还原后,我们可以将还原后的 JS 替换掉网站本身经过混淆后的 JS,这里替换方法有很多,比如使用 Fiddler 等抓包工具替换响应、使用 ReRes 之类的插件进行替换、使用浏览器开发者工具自带的
而对于应用越来越广泛的 Node.js 而言,运行的则是源代码。即使经过压缩混淆,也可以很大程度地还原。...compile.js 即为执行编译操作的文件,其流程也非常简单,读取源文件内容,编译为字节码后保存为文件(dist/*.jsc): const path = require('path'); const...然而,直接执行 node index.jsc 是无法运行的,因为 Node.js 在默认情况下会把目标文件当做 JavaScript 源代码来执行。 此时,就需要对 jsc 文件使用特殊的加载逻辑。...= require('fs'); const vm = require('vm'); // 加载 jsc 文件的扩展 Module....$/, '.jsc'), script.cachedData ); }); dist/main.js 代码如下: const Module = require('module'); const
Nest.js以其模块化架构和强大的功能,成为Node.js开发者的理想选择。本篇博客将带你快速入门Nest.js,从安装到运行,让你在几分钟内体验到它的强大魅力。...Nest.js简介Nest.js是一个渐进式的Node.js框架,基于TypeScript构建,灵感来自Angular。它旨在帮助开发者构建可维护、可扩展的服务器端应用程序。...安装和基础使用开始使用Nest.js非常简单。首先,确保你已安装Node.js和npm。...字样,这说明你的Nest.js应用已成功运行。结语本篇博客详细介绍了Nest.js的基本安装和使用方法,从创建项目到运行应用,让你快速上手并体验其强大功能。...Nest.js的模块化设计和TypeScript支持,使其成为构建高效、可维护Node.js应用的不二之选。
引擎也基于JSC构建,不过有一些私有的优化,总体性能相差不大。...JSC的执行理念比较符合传统的引擎逻辑,它包括了2部分:解释器和简单方法JIT。...在iOS7中,我们可以引入JSC框架,这样,我们可以oc层来操作js层代码的执行。...另外JSC暴露了许多C层面的接口,我们也可以在底层来构建自定义的js执行环境,操作执行js代码,可控执行可扩展性更强。...在下一节中,介绍利用JSC高效通信的另一种hack方法,请期待!
JS 引擎功能大比拼 1.JavaScriptCore mobile_JSVM_JSC JavaScriptCore 是 WebKit 默认的内嵌 JS 引擎,wikipedia 上都没有独立的词条,...垄断归垄断,其实 JSC 的性能还是可以的。 很多人不知道 JSC 的 JIT 功能其实比 V8 还要早,放在十几年前是最好的 JS 引擎,只不过后来被 V8 追了上来。...这点在今天讨论的 JS 引擎中,JSC 是最能打的。...Hermes 一开始推出就是要替代原来 RN Android 端的 JS 引擎,即 JavaScriptCore(因为 JSC 在 Android 端表现太拉垮了)。...综合成绩最高(JSC 还是一样的拉垮): JSVM_CPU_Performance 说完性能我们再说说 Hermes 的 JS 语法支持情况。
在iOS上Hippy使用的是系统提供的JavascriptCore引擎来运行JS代码,所以我们要分析一下JSC的执行过程。...下面讨论的也是指不带JIT的JSC版本。 整个流程,在JS代码被解释执行前,绝大部分时间消耗是在字节码生成上。...,以QB首页Feed流(3.8M左右)举例,JSC和V8均输入原始js文件,QuickJS和Hermes输入JS编译后的Bytecode文件。...Runtime Hermes使用非常简单,提供了一个Runtime的抽象类,所有的js对象都执行在Runtime对象上,类似JSC的JSContext;派生了HermesRuntime子类来实现所有JS...所以对于JSC的JS异常,只需要处理接口的Exception就行;V8处理TryCatch对象捕获的异常就可以。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,它使 JavaScript 能够在服务器端运行。...作为一种强大的后端开发工具,Node.js 提供了丰富的模块和功能,使开发人员能够轻松地构建高性能的网络应用程序。本文将重点讨论 Node.js 中的 GET 和 POST 请求。...在 Node.js 中处理 GET 请求处理 GET 请求需要使用 Node.js 的内置模块 http 或者第三方模块 express。下面将分别介绍两种方式。...在 Node.js 中处理 POST 请求处理 POST 请求同样需要使用 Node.js 的内置模块 http 或者第三方模块 express。下面分别介绍两种方式。...通过本文的学习,相信你已经掌握了在 Node.js 中处理 GET 和 POST 请求的方法。
这种明星项目,正因为独立JS引擎让人们在追求Hybrid极致的情况下找到了Web和Native新的平衡点,比如Weex,React Native这样的移动解决方案,今天我们就要谈一谈iOS上JS的载体引擎...let jsc = JSContext() let num = jsc?....evaluateScript("1 + 2") 使用JSContext去执行JS中定义的计算或者值,这都可以得到完整的转换,上述的一个例子只是说明了,Native如何调用JS的方式,使用"evaluateScript...let jsc = JSContext() jsc?....toNumber())") 如果想要让JS主动的调用并且向Native传输数据,也非常简单,如下: jsc[@"callNative"] = ^(JSValue *instance, JSValue *
1.脚本语言。JavaScript 是一种解释型的脚本语言,C、C++等语言先编译后执行,而 JavaScript 是在程序的运行过程中逐行进行解释。
在上家公司开发后台管理系统的时候,频繁要处理各种数据显示的问题,一开始是实现就好。后来写多了,自己看得也难受了。就想着怎么优化代码和复用了。下面就通过一个简单的...
toString 可以将多维数组转变成字符串,在通过 split 转换成数组,此时每个元素都为字符串,但需注意的是 此时每个数组元素都为字符串,可以用Numbe...
在js端,由于只有暴露在全局的函数声明才能够让oc端访问,这就限制了js端的灵活性。...if(isiOS4JSC){ // 将注册的方法透出到window.jscObj的属性上 var ev = eval; $.JSBridge...._JSMethod = method; // 暴露函数至全局 // jsc只能执行全局函数声明方式定义的函数,不可以将函数指针复制给其他变量执行 ev('function toObjectCExec...尾声 我现在仍然相信,目前的iOS hybridAPP的主流通信方式仍然适corava的javascriptWebViewBridge,但是随着jsc引入到iOS7中,本文介绍的使用jsc(嵌入...js引擎的方式)来完成oc和js的通信将更为流行,尽管目前apple提供的针对jsc的开发接口文档几乎没有,但是我们通过webkit的源码做一些hack的方式也不是不可以,毕竟只要UIWebView仍然使用
在r237547版本我们介绍过一种新的 JavaScriptCore(JSC) 字节码规范。...在这篇文章中,我们准备从一份 JSC 的字节码示例开始讲起,旧版字节码规范的主要作用和他使用到的优化。接着,我们会看看新规范是怎么优化编译器的。...最后我们会看下新规范是如何影响内存和性能,还有这样重写之后怎样提高 JSC 的类型安全性。 背景 在 JSC 执行任何 JS 代码之前,必须经过编译和生成字节码的过程。...在像 Facebook 或者 Reddit 这种重 JS 逻辑的页面中,字节码负有撑大20%内存的责任。...// double.js function double(a) { return a + a; } double(2); 如果你用 jsc -d double.js 来执行上面的程序,JSC 会以
App逆向案例 X嘟牛 - Frida监听 & WT-JS工具还原(一) ---- 提示:文章仅供参考,禁止用于非法途径; 文章目录 App逆向案例 X嘟牛 - Frida监听 & WT-JS工具还原...(一) 前言 一、资源推荐 二、App抓包分析 三、反编译逆向分析 四、还原JS加密 1.Hook示例代码 2.JS还原 五、python登录实现代码 1.python示例代码 2.python运行结果...DES加密生成encrypt,public static String encodeDesMap(String data, String desKey, String desIV) 四、还原...还原 1、运行Hook代码 2、分析加密参数: sign的加密参数:equtype=ANDROID&loginImei=Android354730613429558&timeStamp=1670240167016&...还原MD5 4、使用WT-JS生成MD5的加密代码 5、查看生成的代码 6、WT-JS还原DES public static final String BASE_DES_IV
领取专属 10元无门槛券
手把手带您无忧上云