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的终端。安装脚手架是在命令行工具里进行的。
可以在Dex文件头隐藏另一个DEX数据并在运行时加载附带DEX数据。构建非规范的Dex文件
通过反射调用DexFile类的方法加载附带DEX数据
通过反射实际调用DexFile的openDexFile方法
该种方式允许通过byte[]解析dex数据,而无须在再把DEX数据存储在设备的某个文件。
可以从安族段培装APK文件、内存或dalvik-cache等读取dex数据。燃液
该种方式将给自动化分析工具带来一个问题,自动化工具会按照dex格式处理DEX文件而不会处理附带的dex数据。需要特定的工具、16进制编辑器或手工提取嵌入的dex数据。
我们可以采用各种不同的方式增加嵌入数据的提取难度,比如:
对嵌入的DEX数据进行加密;
嵌入的DEX数据加密后在对其进行ZIP压缩;
使用native代码解密,直接从内存加载;兆唯
......等等
该种隐藏方式可以通过判断Dex文件头长度是否大于0x70检测。
这个是晌槐个隐藏文件,在你使用的用宴磨友户家目录下的
是csh
这个shell的配置文件,你对csh的更改都会游雹记录在这个文件中,下次你再启动csh的时候会读取这个文件,在linux下有很多这种文件的
比如
.bash_profile
.vimrc
.gnomerc
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)