首页
学习
活动
专区
工具
TVP
发布

JS生成字节生成技术,用字节保护商业NodeJS源码!

本文介绍一种NodeJS源代码保护方式:通过把nodejs代码转化为字节,用node启动字节文件的方式,保护nodejs源代码不泄漏。...实现原理 nodejs的内核中对于js的解析,使用的是谷歌的v8引擎。v8引擎内置有js虚拟机。通过v8虚拟机,可以将js代码编译为字节。而v8虚拟机是能够识别和直接运行该字节的。...因此,以下执行逻辑成为可能: 1、js代码 -> js字节 2、js字节 -> nodejs ->运行 实现代码 (例程) 生成字节文件的部分: var v8 = require('v8...,读取、运行字节。...对于JS代码产品的保护,除了可以使用字节技术,还可以用代码混淆加密的办法,比如:JShaman(http://www.jshaman.com/)是一款对JS代码进行混淆加密的工具,也适用于nodejs

3.1K00
您找到你想要的搜索结果了吗?
是的
没有找到

JVM与字节——2进制流字节解析 原

字节解析 结构 本位将详细介绍字节的2进制结构和JVM解析2进制流的规范。...version版本号 ~04~07 是当前字节的版本号。...总结 Jvm识别字节的过程到此介绍完毕,按照这个识别过程可以理解JVM是怎么一步一步解析字节的。...能够理解字节和JVM的识别过程还可以帮助我们更深层次优化代码。无论Java代码写得再漂亮也要转换成字节去运行。从字节层面去看运行的方式,要比从Java源码层面更为透彻。...理解字节还有一个好处,更容易理解多线程的3个主要特性:原子性、可见性和有序性。比如new Object() 从字节层面一看就知道不具备原子性,指令重排的问题在字节层面也是一目了然。

1K30

Python字节介绍

访问和理解Python字节 如果你也想玩玩这个,Python标准库中的dis模块就非常有用了; dis模块为Python字节提供了一个“反汇编程序”,从而可以轻松获取人为可读的版本并查找各种字节指令...dis模块的文档涵盖了相关内容,并提供了字节指令以及它们的作用和参数的完整清单。 例如,要获取之前hello()函数的字节列表,我将它键入Python解释器中,然后运行: ?...“原始”字节 - 不具有可读性字节 - 可以通过代码对象的co_code的属性来访问。如果您想尝试手动反汇编函数,则可以使用列表dis.opname从十进制字节值中查找相应字节指令的名称。...对于Python, 理解字节会有类似的效果 - 如果您可以预想到Python源代码会被转换成怎样的字节,你就可以更好地决定如何编写和优化它。...字节解释器的实现位于文件Python/ceval.c中。这里是Python 3.6.4版本的文件 ; 字节指令是由第1266行的switch语句开始处理。

1.5K30

Java字节简介

jvm运行的指令就是.class字节。所以通过学习字节的规范和规则能提升我们对代码执行过程的理解。 这里恶补一下字节相关的基础知识。 我们打开.class文件,发现字节都是十六进制的编码。...字节的组成有以下部分,正入上图所示,十六进制的字节中就包含这些部分 。如下图所示。...2.版本号:因为java有不同的版本,所以在java字节中也有标记。0000 0034两个字节就表示java1.8版本。...在字节中的十六进制关系如下图所示。 (5) 当前类名 访问标志后的两个字节,描述的是当前类的全限定名。这两个字节保存的值为常量池中的索引值,根据索引值就能在常量池中找到这个类的全限定名。...,其字节中方法的执行和常量池和代码区有很大的联系。

84410

字节执行引擎

在上一篇我们介绍了类加载器的相关功能,在这一篇中我们在分享一下虚拟机中的另一个非常重要的功能字节执行引擎。我们知道Java虚拟机的主要任务就是加载class文件并执行其中的字节。...加载class的功能是由类加载器实现的,那么执行其中字节的功能就是由字节执行引擎执行的。下图为虚拟机的基本结构图。 ?...虚拟机执行字节时,会监视程序中使用最频繁的代码,将其编译成本地机器代码,而其它的字节,继续保留为字节。...执行引擎是由硬件芯片构成,它用本地代码执行字节。 上面所说的都是不同执行引擎的的执行特性,但无论是哪一种执行引擎其中最基本的功能都是执行字节。...我们知道class文件的常量池中存有大量的符号引用,字节中的方法调用就以常量池中指向方法的符号引用作为参数。

53920

ASM字节插桩

方案4:字节插桩 字节函数插桩目前有以下两种框架 ASM 思路:应用程序打包成APK之前会先编译成.class文件,然后打包成dex,最后组成apk。...ASM框架进行字节函数插桩 ============== 经过上述方案的对比,最终采用ASM进行字节插桩。主要是对代码的侵入低,可定制化配置(过滤采集页面,过滤时长,配置页面映射等)。...* 使用android提供的Transform API获取project的文件 * 检测到文件后缀为class的时候进行文件修改 \* ASM框架相应API进行字节读取和分析和插入 \*...后续如果缺少相应的控件,那么可以根据相应的控件进行添加对应的字节描述即可: 例如在APP中的底部控件为Google的design控件,添加: SDK\_API\_CLASS = "com/cage/...相关视频推荐: 【Android组件化设计】字节插桩优化框架初始化速度 本文转自 https://juejin.cn/post/6844904194445426702,如有侵权,请联系删除。

90950

Java字节增强探秘

字节 1.1 什么是字节?...因此,也可以看出字节对于Java生态的重要性。之所以被称之为字节,是因为字节文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。...本文重点着眼于字节增强技术,从字节开始逐层向上,由JVM字节操作集合到Java中操作字节的框架,再到我们熟悉的各类框架原理及应用,也都会一一进行介绍。...图15 jclasslib查看字节 2. 字节增强 在上文中,着重介绍了字节的结构,这为我们了解字节增强技术的实现打下了基础。...字节增强技术就是一类对现有字节进行修改或者动态生成全新字节文件的技术。接下来,我们将从最直接操纵字节的实现方式开始深入进行剖析。 ?

1.8K51

JVM 字节解析过程

这部分个人觉得主要是属于设计机构拓展的内容,大家可以一起来学习一下 Java 字节的设计结构以及感受一下设计者的设计。...class 类文件结构 Java 提供 javap 命令可以分析字节文件,我们可以使用 javap -verbose 命令分析一个字节文件时, 将会分析该字节文件的魔数、版本号、常量池、类信息、类的构造方法...魔数和 Class 文件版本 魔数:所有的.class 字节文件的前4个字节都是魔数,魔数为固定值: 0xCAFEBABE 版本信息,魔数之后的4个字节是版本信息,前两个字节表示 minor version...code_length 表示该方法所包含的字节字节数以及具体的指令。 具体字节即是该方法被调用时,虚拟机所执行的字节。 exception_table, 这里存放的是处理异常信息。...对于Java每一个实例方法(非静态方法), 其在编译后生成的字节中比实际方法多一个参数, 它位于方法的第一个参数位置.

28920

Java 字节操作示例

Java 动态性的两种常见实现方式 (1)字节操作 (2)反射 运行时操作字节可以让我们实现如下功能: (1)动态生成新的类 (2)动态改变某个类的结构(添加/删除/修改 新的属性/方法...) 优势 (1)比反射开销小,性能高 (2)Javassist 性能高于反射,低于ASM 常见的字节操作类库 BCEL Byte Code Engineering Library(BCEL...BCEL 与Javassist 有不同的处理字节的方法,BCEL 在实际的 JVM 指令层次上进行操作 ( BCEL 拥有丰富的 JVM指令级支持 ),而 Javaassist 所强调的是源代码级别的工作...Javassist 是一个开源的分析、编辑和创建 Java 字节的类库。性能较 ASM 差,跟 cglib 差不多,但是使用简单。很多开源框架都在使用它。...这就是我们生成的字节文件内容。

82810
领券