对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();
//从服务器获取Hash值并进行比较
...
}

转载于:https://www.cnblogs.com/littlefishxu/p/3969199.html

dex、apk完整性校验相关推荐

  1. Android APP安全之APK完整性校验

    一.认识APK安全性 危害 可以通过修改客户端文件篡改客户端行为.攻击者可以让客户端显示自己制作的钓鱼网站,偷取用户信息 二.完整性校验原理 完整性校验的几种方式 CRC校验 MD5值校验 SHA1值 ...

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

    作者:寻禹@阿里聚安全 APK签名校验分析 找到PackageParser类,该类在文件"frameworks/base/core/java/android/content/pm/Packa ...

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

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

  4. Week 3: 边下边播完整性校验作业

    文章目录 边下边播完整性校验 解题思路 样例程序 代码 结果 边下边播完整性校验 week 3最后的编程作业是解决体积较大的视频文件边下边播完整性校验问题, 原题如下: Suppose a web s ...

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

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

  6. 文件完整性校验码计算工具

    文件完整性校验码计算工具 工具介绍 支持算法:CRC32,MD2,MD4,MD5,SHA1,SHA256,SHA512,RipeMD128,RIPEMD160,ED2K 多个哈希类型可以同时生成每个文 ...

  7. Android逆向【4】:暴力破解APK签名校验,愉快的重新打包微信支付宝APK

    回顾 <Android逆向小技巧③:批量注入日志,打印目标程序执行流程> 在上一篇2019年的文章中,我们使用python写了一个简单的文本处理工具: https://github.com ...

  8. Java 文件完整性校验 sha512

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

  9. android加密中RSN是什么,2. RSN数据加密及完整性校验[29][30]

    RSN中数据加密及完整性校验算法有两种,分别是TKIP和CCMP.下面分别来介绍它们. 规范阅读提示 规范中还有一种广播/组播管理帧完整性校验的方法,叫BIP(Broadcast/Multicast ...

最新文章

  1. ubuntu14.04 nginx php编译安装,Ubuntu 14.04 编译安装 Nginx
  2. 高德地图-轨迹回放(二)
  3. 【BZOJ3451】Normal【期望线性性】【点分治】【NTT卷积】
  4. mysql初始化脚本建表_mysql新建表修改表sql脚本
  5. UILable和UITextField的详细讲解
  6. 如何通过虚拟私有云保障服务安全【华为云分享】
  7. 韩国有多大?相当于中国哪里?
  8. python3之urllib代理池
  9. v-charts使用-实例
  10. 设置android应用闪屏图片_android 闪屏设计
  11. 【机器学习】【决策树】C4.5算法,详解+python代码实现
  12. vue 报错:Templates should only be responsible for mapping the state to the UI. Avoid placing tags with
  13. Unity 自定义自发光材质 shader (对比Standard Eimission)
  14. 集线器、中继器、网桥、交换机、网关、路由器——今天必把你们区分开
  15. linux上同步日历的,Linux命令行上如何使用日历详解
  16. 词频统计(仍需完善版)
  17. 支付安全(证书/秘钥/签名)
  18. 基于机智云的嵌入式系统应用开发—空调远程智能控制系统
  19. 关于App置灰黑白化的探索
  20. activiti工作流Comment中文乱码的问题

热门文章

  1. ntnub原理怎么看_电锤只转不冲击怎么回事?看懂了工作原理,你也可以动手解决...
  2. 述职答辩提问环节一般可以问些什么_内部资料,仅供阿里在职同事传阅:晋升答辩成功要诀...
  3. c++层次遍历_数据结构与算法,弄懂图的两种遍历方式
  4. mysql三高讲解(三)3.2:如何确定用哪条索引
  5. 手写java_手写java锁
  6. cricheditview实现语法高亮和行号_Markdown语法详解及工具介绍
  7. git线上服务器_pm2实现git仓库代码一键配置部署到线上服务器
  8. vue element Form-Item prop
  9. MongoDB shell
  10. java 日期和时间