对Dex进行完整性的检查,可通过CRC,或者Hash值。可将校验值放到String资源文件里,或者放到服务器中。


  1. 在代码中完成校验值对比逻辑,此部分代码后续不能再改变,否则CRC值会发生变化;
  2. 从生成的APK文件中提取出classes.dex文件,计算CRC值,或Hash值,
  3. 将计算出的值放入strings.xml文件中
string apkPath=this.getPackageCodePath();

Long dexCRC=Long.parseLong(this.getString(R.string.dex_crc));

try{
     ZipFile zipfile=new ZipFile(apkPath);

     ZipEntry dexentry=zipfile.getEntry("classes.dex");
         
     if(dexentry.getCrc()!=dexCRC){//代码逻辑中,进行校验
          System.out.println("Dex has been modified!");
     }else
     ...
破解方法:逻辑判断的true/false容易更改



对APK的完整性校验:Hash值放在服务端比较合适。

MessageDigest msgDigest=null;

try{
     msgDigest= MessageDigest.getInstance("md5");
     byte[] bytes=new byte[8192];
     int byteCount;

     FileInputStream fis=null;
     fis =new FileInputStream(new File(apkpath));
     
     while((byteCount=fis.read(bytes))>0){
          msgDigest.update(bytes,0,byteCount);
          BinInteger bi=new BigInteger(1,msgDigest.digest());
          String md5 =bi.toString(16);
          fis.close();
     
     ...
}





dex、apk完整性校验的更多相关文章

  1. [Android Security] APK自我保护 - DEX/APK校验

    cp : https://segmentfault.com/a/1190000005105973 DEX校验 classes.dex 是 Android 虚拟机的可执行文件,我们所写的 java 代码 ...

  2. android apk 自我保护技术-完整性校验

    关于防止android apk被反编译的技术我们前面已经讲了四种. 加壳技术 运行时修改字节码 伪加密 对抗JD-GUI 如果有不明白的可以查看我的博客的前四篇中关于这四种技术的介绍.接下来我们接着介 ...

  3. Android5.1.1 - APK签名校验分析和修改源码绕过签名校验

    Android5.1.1 - APK签名校验分析和修改源码绕过签名校验 作者:寻禹@阿里聚安全 APK签名校验分析 找到PackageParser类,该类在文件“frameworks/base/cor ...

  4. APK签名校验绕过

    APK签名校验绕过 Android JNI 获取应用签名 android apk 防止反编译技术第一篇-加壳技术 android apk 防止反编译技术第五篇-完整性校验 利用IDA Pro反汇编程序 ...

  5. 转: APK签名校验绕过

    转: http://drops.wooyun.org/mobile/4296 APK签名校验绕过 3xpl0it · 2014/12/11 10:41 0x01 Android签名机制 将APK重命名 ...

  6. dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致

    git clone https://github.com/iagox86/nbtool make 然后就可以按照下面的官方说明进行操作了. 我的感受:整体感觉这个工具不完善,失败率很高,传文件时候没有 ...

  7. Java 文件完整性校验 MD5 sha1 sha256 sha224 sha384 sha512

    由于项目中需要使用文件做备份,并且要提供备份文件的下载功能.备份文件体积较大,为确保下载后的文件与原文件一致,需要提供文件完整性校验. 网上有这么多此类文章,其中不少使用到了 org.apache.c ...

  8. 痞子衡嵌入式:在IAR开发环境下为工程开启CRC完整性校验功能的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下为工程开启CRC完整性校验功能的方法. CRC校验在嵌入式领域里的应用非常广,比如在通信领域,CRC检验值可以作为数据 ...

  9. 痞子衡嵌入式:一次利用IAR自带CRC完整性校验功能的实践(为KBOOT加BCA)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是利用IAR自带CRC完整性校验功能的一次实践(为KBOOT加BCA). 痞子衡之前写过两篇关于IAR中自带CRC校验功能的文章 < ...

随机推荐

  1. 数据库之postgreSQL入门操作指南

    一.增 二.删 三.改 四.查 五.SQL操作表 1.增加列 ALTER TABLE table_name ADD column_name datatype; 2.删除一列 ALTER TABLE t ...

  2. 【非原创】codeforces 1070C Cloud Computing 【线段树&树状数组】

    题目:戳这里 学习博客:戳这里 题意:有很多个活动,每个活动有持续天数,每个活动会在每天提供C个CPU每个CPU价格为P,问需要工作N天,每天需要K个CPU的最少花费. 解题思路:遍历每一天,维护当前 ...

  3. map最最最基本用法

    map<a,b>c中,a,b是变量类型 参数定义的map的名字 #include<stdio.h> #include<map> //头文件 map<int,c ...

  4. JSON简单理解

    JSON 与 JS 对象的关系 很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚.其实,可以这么理解: JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息 ...

  5. 二、mycat基础知识、基本配置

    官网 http://www.mycat.io/ Mycat 概要介绍 https://github.com/MyCATApache/Mycat-Server 入门指南 https://github.c ...

  6. Linux 驱动框架---驱动中的时间相关

    内核中的时间 Linux 系统内核对于时间的管理依赖于硬件,硬件按一定的周期产生中断,周期由内核的一个配置值HZ决定在系统启动时会将定时器配置为HZ值指定的频率产生中断:同时内核和维护一个64位(X8 ...

  7. freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5

    最近因为工作需要用到FreeRTOS,其实开始本人内心是拒绝的因为自己只学习过UCOSIII还没实际上过什么大又复杂的工程,但是谁让FreeRTOS他是Free的呢公司成本考虑肯定是不会选择USOS的 ...

  8. μC/OS-III---I笔记10---内存管理

    内存管理: 平时经常用到一些windows内存管理的软件,有一些内存管理的软件进行内存碎片的整理,在频繁分配和释放内存的地方会造成大量的内存碎片.内存碎片是如何形成的呢?书中是这样写的:在不断的分配和 ...

  9. CDN maxcdn for speed up

    https://www.maxcdn.com/ The Next Generation CDN.Plug into a whole new level of speed.From: https://w ...

  10. AMP ⚡️原理

    AMP ️原理 AMP 是如何运作的 https://amp.dev/zh_cn/about/how-amp-works/ AMP 瞬时加载 结合了以下优化是 AMP 页面速度之快以至于它们可以瞬时加 ...