基于 Babel 对 JS 代码进行混淆与还原操作的网站 JS 代码混淆与还原 (kuizuo.cn) 还原前言 AST 仅仅只是静态分析,但可以将还原出来的代码替换原来的代码,以便更好的动态分析找出相关点...在还原时,并不是所有的代码都能还原成一眼就识破代码执行逻辑的,ast 也并非万能,如果你拥有强大的 js 逆向能力,有时候动态调试甚至比 AST 静态分析来的事半功倍。...接下来我将要演示一个混淆代码是如何还原的,这个例子是我第一次接触混淆的例子,也可以说是我玩的最溜的一次还原了,反正折腾了也有 4,5 来次。...所以如何执行解密函数便是重点了。...JS 混淆与还原的网站 针对上述还原操作其实还不够明显,于是就编写了一个在线对 JS 代码混淆与还原的网站(主要针对还原)– JS 代码混淆与还原 (kuizuo.cn) 其实也就是对上述的还原代码进行封装成工具使用
前言 在渗透测试时,经常会遇到以js.map为后缀的文件 这是jQuery中的一个新功能,支持Source Map 非常多Webpack打包的站点都会存在js.map文件....,文件和目录都能全部还原出来。...restore-source-tree可以还原目录,但一些文件会出现还原不了的情况 shuji可以还原文件,但同名的文件会出现忽略且不保存的情况 安装reverse-sourcemap 此处以Windows...C:\Users\小生观察室\>reverse-sourcemap -v Root-5712cd11ab11386d4a3e.js.map -o output reverse-sourcemap - ...of 1 files Outputting to directory: C:\Users\小生观察室\output Processing file Root-5712cd11ab11386d4a3e.js.map
前言 在渗透测试时,经常会遇到以js.map为后缀的文件 这是jQuery中的一个新功能,支持Source Map 非常多Webpack打包的站点都会存在js.map文件....,文件和目录都能全部还原出来。...restore-source-tree可以还原目录,但一些文件会出现还原不了的情况 shuji可以还原文件,但同名的文件会出现忽略且不保存的情况 安装reverse-sourcemap 此处以Windows...C:\Users\小生观察室\>reverse-sourcemap -v Root-5712cd11ab11386d4a3e.js.map -o output reverse-sourcemap -...of 1 files Outputting to directory: C:\Users\小生观察室\output Processing file Root-5712cd11ab11386d4a3e.js.map
逆向过程 本次逆向的目标同样是一个登录接口,其中的加密 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
如何优化这段耗时,尽量对齐Native体验,想必是每个团队需要思考优化的事情。...性能指标对比以下各项对比取至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异常
......如何从这些 JS 引擎里选出最适合的?...垄断归垄断,其实 JSC 的性能还是可以的。 很多人不知道 JSC 的 JIT 功能其实比 V8 还要早,放在十几年前是最好的 JS 引擎,只不过后来被 V8 追了上来。...这点在今天讨论的 JS 引擎中,JSC 是最能打的。...test262 那么 QuickJS 的性能如何呢?QuickJS 官上有个基准测试[23],综合比较了多款 JS 引擎对同一测试用例的跑分情况。...如果大家有移动端 JS 引擎选型的困惑,我认为从本文出发,还是可以给不少人以灵感的,希望我的这篇文章能帮助到大家。 参考链接 跨端框架的核心技术到底是什么? 如何隐藏你的热更新 bundle 文件?
导读|Hippy使用JS引擎进行异步渲染,在用户从点击到打开首屏可交互过程中会有一定的耗时,影响用户体验。如何优化这段耗时?...如何优化耗时,尽量对齐Native体验,想必是许多开发者都在思考优化的事情。 本文主要介绍QQ浏览器通过切换JS引擎来优化耗时的探索过程和效果收益。...下面讨论的也是指不带JIT的JSC版本。 整个流程,在JS代码被解释执行前,绝大部分时间消耗是在字节码生成上。...,以QB首页Feed流(3.8M左右)举例,JSC和V8均输入原始js文件,QuickJS和Hermes输入JS编译后的Bytecode文件。...回复“性能优化“,查看作者推荐的更多文章 腾讯工程师技术干货直达: 1、H5开屏从龟速到闪电,企微是如何做到的 2、内存泄露?
作者 | Klevis Ramo 译者 | Teixeira10 在本文中,作者提出了使用k-means算法来对图像进行色彩还原,介绍算法的步骤,同时应用在图像上,通过对比还原前后的图像,来证明k-means...步骤1 现在继续解释步骤1是如何实现的。如果你不熟悉多维特性数据。...算法的执行和结果 在本节中,将运行应用程序(也可以下载代码),并通过一些细节来了解k-means算法如何进行色彩还原。...色彩还原 需要说明的是,k-means算法不是减少图像上的像素,而是通过将相似的颜色组合在一起,以此来减少图像的颜色数量。...在给出了一些重要的示例之后,该算法根据不同的图像学习了如何减少到最佳颜色数量。现在是时候让线性回归算法预测下一个图像的颜色会减少多少了。
【译者注】在本文中,作者提出了使用k-means算法来对图像进行色彩还原,介绍算法的步骤,同时应用在图像上,通过对比还原前后的图像,来证明k-means算法的有效性。...步骤1 现在继续解释步骤1是如何实现的。如果你不熟悉多维特性数据。...算法的执行和结果 在本节中,将运行应用程序(也可以下载代码),并通过一些细节来了解k-means算法如何进行色彩还原。...色彩还原 需要说明的是,k-means算法不是减少图像上的像素,而是通过将相似的颜色组合在一起,以此来减少图像的颜色数量。...在给出了一些重要的示例之后,该算法根据不同的图像学习了如何减少到最佳颜色数量。现在是时候让线性回归算法预测下一个图像的颜色会减少多少了。
你是否曾经想过如何备份和还原 Ubuntu 或 Debian 系统?Timeshift 是一款自由开源工具,可让你创建文件系统的增量快照。你可以使用 RSYNC 或 BTRFS 两种方式创建快照。
这种明星项目,正因为独立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 *
它是如何工作的 k-means算法有两个步骤。假设把数据分成四组,执行以下步骤。 注意:在开始任何步骤之前,k-means算法会从数据中随机抽取三个样本,称为聚类中心。...步骤1 现在继续解释步骤1是如何实现的。如果你不熟悉多维特性数据。...算法的执行和结果 在本节中,将运行应用程序(也可以下载代码),并通过一些细节来了解k-means算法如何进行色彩还原。...色彩还原 需要说明的是,k-means算法不是减少图像上的像素,而是通过将相似的颜色组合在一起,以此来减少图像的颜色数量。...在给出了一些重要的示例之后,该算法根据不同的图像学习了如何减少到最佳颜色数量。现在是时候让线性回归算法预测下一个图像的颜色会减少多少了。
引擎也基于JSC构建,不过有一些私有的优化,总体性能相差不大。...JSC的执行理念比较符合传统的引擎逻辑,它包括了2部分:解释器和简单方法JIT。...在iOS7中,我们可以引入JSC框架,这样,我们可以oc层来操作js层代码的执行。...另外JSC暴露了许多C层面的接口,我们也可以在底层来构建自定义的js执行环境,操作执行js代码,可控执行可扩展性更强。...在下一节中,介绍利用JSC高效通信的另一种hack方法,请期待!
......如何从这些 JS 引擎里选出最适合的?...垄断归垄断,其实 JSC 的性能还是可以的。 很多人不知道 JSC 的 JIT 功能其实比 V8 还要早,放在十几年前是最好的 JS 引擎,只不过后来被 V8 追了上来。...这点在今天讨论的 JS 引擎中,JSC 是最能打的。...test262 那么 QuickJS 的性能如何呢?QuickJS 官上有个基准测试[23],综合比较了多款 JS 引擎对同一测试用例的跑分情况。...再 +1) QuickJS 和 Hermes 的跑分情况是差不多的,我私下做了一些性能测试,这两个引擎的表现也很相近 因为 QuickJS 的设计,我不经好奇他和 Lua 的性能对比如何。
其次,我们既然获取到了JSContext,但是并不知道JSContext与UIWebVIew的对应关系,我们的ViewController中可能会有多个UIWebView,如何将获取的JSContext...在js端,由于只有暴露在全局的函数声明才能够让oc端访问,这就限制了js端的灵活性。...if(isiOS4JSC){ // 将注册的方法透出到window.jscObj的属性上 var ev = eval; $.JSBridge....尾声 我现在仍然相信,目前的iOS hybridAPP的主流通信方式仍然适corava的javascriptWebViewBridge,但是随着jsc引入到iOS7中,本文介绍的使用jsc(嵌入...js引擎的方式)来完成oc和js的通信将更为流行,尽管目前apple提供的针对jsc的开发接口文档几乎没有,但是我们通过webkit的源码做一些hack的方式也不是不可以,毕竟只要UIWebView仍然使用
ComplexHeatmap 还原绘图 01 编个数据用用吧 mat是基因表达矩阵,tab是特征标签数据框,sampletab是样本标签数据框。
HTML决定了网页的框架结构——有几间房间、作什么用途、里面摆放什么东西,CSS决定了网页的样式——房间是如何装潢的(如墙壁是什么颜色的),JavaScript则决定了网页上的用户交互和数据处理——用遥控器遥控电视...框化后的代码实现 等你把所有元素都框化以后,就可以着手开始写代码还原设计稿了。顺序是从最外面的框写起,不断往里面写。...写HTML代码,把内容盛放进框中 写CSS代码,定义元素(或框)的样式(从大的样式特征——如框的宽度,到小的——如字体字重) 保存代码,在浏览器中打开,检查和设计稿的差距,调整代码 重复4-6步直到还原设计稿
如何在 JavaScript 中引用 JS 脚本 在 JavaScript 中引用外部 JS 脚本有两种主要方法: 使用 标签 这是最简单的方法,通过在 HTML 页面中插入... 标签来引用 JS 脚本: 其中 src 属性指定要引用的脚本文件的路径。...动态创建并插入 元素: const script = document.createElement("script"); script.src = "script.js
领取专属 10元无门槛券
手把手带您无忧上云