什么是 Dex 文件
在明白什么是 Dex 文件之前,要先了解一下 JVM,Dalvik 和 ART。JVM 是 JAVA 虚拟机,用来运行 JAVA 字节码程序。Dalvik 是 Google 设计的用于 Android平台的运行时环境,适合移动环境下内存和处理器速度有限的系统。ART 即 Android Runtime,是 Google 为了替换 Dalvik 设计的新 Android 运行时环境,在Android 4.4推出。ART 比 Dalvik 的性能更好。
Android 程序一般使用 Java 语言开发,但是 Dalvik 虚拟机并不支持直接执行 JAVA 字节码,所以会对编译生成的 .class 文件进行翻译、重构、解释、压缩等处理,这个处理过程是由 dx 进行处理,处理完成后生成的产物会以 .dex 结尾,称为 Dex 文件。
Dex 文件格式是专为 Dalvik 设计的一种压缩格式。所以可以简单的理解为:Dex 文件是很多 .class 文件处理后的产物,最终可以在 Android 运行时环境执行。
Dex文件在auto.js脚本编写中的作用
- 加固脚本,防止反编译
- 能实现脚本热更新
- 能提高代码的运行速度
将JS转换为dex能在一定程度上保障源码安全,且具有更快的运行速度。
由于auto.js文档中,提供了runtime.loadDex(path)的方法,因此我们可以将js文件转换为dex文件进行调用,来提高打包后apk的安全性,避免被庖丁等某些快速反编译工具提取js源码。
本教程你将学到
js文件转换为dex的过程
auto.js调用dex内的函数
操作过程
js转dex的方法,在百度上能搜到的资料并不多。
最简单方法,你可以使用庖丁一键转换。美中不足的是,庖丁的转换过程,加密了js中的类名。这种设定,导致了每次转换,被调用的类名都会变化。并不利于热更新的实现。
另一方面,庖丁是一个闭源应用,用户无法确定该应用是否安全。
因此,飞云在这里就不介绍这种方法了。
我们来使用一种安全高效稳定的node.js脚手架,来转换dex文件。
该方法,操作比较简单。麻烦就麻烦在,初始化配置相对复杂,一些新手在配置的过程中,容易遇到各种问题,又没有系统的教程和异常问题处理方案,在最终解决问题的过程中,浪费许多时间和精力。
本教程是飞云在mac系统下编写的。如果你的电脑是windows系统,个别细节可能会有差异。例如,windows系统,没有mac的终端。安装脚手架是在命令行工具里进行的。
初始化工作,请参考以下两篇教程。
安装cli脚手架
安装java的JDK13
必须将脚手架和jdk安装好,才能往下面进行。
以下内容包含飞云近百次的测试经验总结。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » autojs加密技术:将auto.js的js文件,转换为dex文件