classes.dex 在 Android 系统上基本负责完成所有的逻辑业务,因此很多针对Android 应用程序的篡改都是针对 classes.dex 文件的。在 APK 的自我保护上,也可以考虑对 classes.dex文件进行完整性校验,简单的可以通过 CRC 校验完成,也可以检查 Hash 值。由于只是检查classes.dex,所以可以将 CRC 值存储在 string 资源文件中,当然也可以放在自己的服务器上,
通过运行时从服务器获取校验值。基本步骤如下:
首先在代码中完成校验值比对的逻辑,此部分代码后续不能再改变,否则 CRC 值会发生变化;
从生成的 APK 文件中提取出 classes.dex 文件,计算其 CRC 值,其他 hash 值类似;
将计算出的值放入 strings.xml 文件中。
核心代码如下:
代码:
1. String apkPath = this.getPackageCodePath();
2. Long dexCrc = Long.parseLong(this.getString(R.string.dex_crc));
3. try {
4. ZipFile zipfile = new ZipFile(apkPath);
5. ZipEntry dexentry = zipfile.getEntry("classes.dex");
6. if(dexentry.getCrc() != dexCrc){
7. System.out.println("Dex has been *modified!");
8. }else{
9. System.out.println("Dex hasn't been modified!");
10. }
11. } catch (IOException e) {
12. // TODO Auto-generated catch block
13. e.printStackTrace();
14. }
但是上述的保护方式容易被暴力破解,完整性检查最终还是通过返回true/false 来控制后续代码逻辑的走向,如果攻击者直接修改代码逻辑,完整性检查始终返回 true,那这种方法就无效了,所以类似文件完整性校验需要配合一些其他方法,或者有其他更为巧妙的方式实现。那么我们可以借用第三方apk安全漏洞检测平台:爱内测(
www.ineice.com),能检测程序可执行文件Dex是否做加密保护处理,给出修复建议,防止被dex2jar等工具反编译。
分享到:
相关推荐
DEX文件格式完整解析全图~~~~~~~~.......................................
baksmali工具,用于将dex文件转为smali文件
DEX文件格式分析
生成dex源码
安卓DEX文件学习笔记,简单记录233333333333333666666
反编译dex文件 反编译apk解压后生成的class.dex文件 内附使用说明
二、合并odex和 少dex的apk 为完整的apk文件 1. 需要odex所在rom中的一些引用类,一般在 /system/framework 目录中 2 . 通过odex生成class文件 java -jar baksmali-1.2.6.jar -x android123.odex 执行完上面...
从服务端下载dex文件并保存到app私有目录,将保存的dex文件动态加载执行
Android中dump出dex文件
自己写的一个java小程序,用android提供的DX工具手动转换为DEX文件,根据dalvik虚拟机字节码规范,手动进行了数据解析,有助于自己实现一个dalvik虚拟机demo
破解器dex反编译文件
dex作为Android平台下的exe是一个非常重要的文件。所以分析就有了必要。 dex作为Android平台下的exe是一个非常重要的文件。所以分析就有了必要。
dex2jar 反编译apk工具 拿到一个apk,可以直接改名成rar进行解压。可以看到熟悉的AndroidManifest.xml和res文件夹,还有一个classes.dex和resources.arsc的东西。 先来看一下classes.dex,这个其实就是打好包的...
详细介绍android apk Dex文件结构;
基于一个dex文件解析程序修改而成,指定要隐藏的方法的sig即可。
1. dex 整个文件的布局 2. header 3. string_ids 4. type_ids 5. proto_ids 6. field_ids 7. method_ids 8. class_defs 8.1 class_def_item 8.2 class_def_item --> class_data_item 8.3 class_def_item --> ...
Dex文件反编译工具介绍.Dex文件反编译工具介绍.Dex文件反编译工具介绍.
可以将dex文件反编译可以用txt查看的文件
android运行时生成dex文件,动态加载运行
Java语言解析dex文件