2019独角兽企业重金招聘Python工程师标准>>>

Android黑产品里面有一个叫做二次打包,也称为重打包。通过反编译应用后,可以得到smali源码,往其中注入代码或者修改相应义务逻辑后,重新利用新的签名进行打包,并发布到市场应用去,很多人就是通过这种方式去破解一些付费应用或者往其中注入广告代码来获利。简单梳理一下打包的基本流程:

1.对应用使用apktool类逆向工具进行解包

2.在某处地方注入smali代码

3.利用IDE生成签名文件,再通过jarsigner进行签名

4.上传应用市场

为了与二次打包做对抗,可以在应用内的关键功能入口增加校验签名的检测,如果发现应用签名非正版,则强制关闭应用或者限制用户使用。加签名校验代码时,可以考虑:

1.在JNI层加校验代码,相比在Java层的代码,JNI层的逆向难度更大。

2.如果要在Java层加校验代码,不要在一个地方暴露一段长字符串,对于逆向工程师来说,这是非常明显的提示。可以考虑将字符串打散存放在各处,这样会增加破解分析的难度

当然不要认为放在JNI层就可以高枕无忧了,对于JNI层,同样可以进行代码注入,来暴力破解你签名校验的逻辑,只不过相比Java层的,JNI层所需成本更高,这样也能拦截掉一部分逆向人员的不好的想法。

转载于:https://my.oschina.net/u/2971691/blog/857799

Android应用安全与防范之签名校验相关推荐

  1. android ota 版本校验,OTA升级签名校验简析

    1. 概要 如果进行过OTA升级的开发者,都或多或少有这样的疑问,如何确定该OTA升级包是可以信任的呢?这其中其实涉及到一个签名验证的流程. 2. 签名生成 在生成正规的固件时,一般会运行生成新key ...

  2. Android App运行时签名校验

    有时候我们为了防止自己的应用被反编译后重新打包,不得不采取运行时进行签名校验的方式. 因为会经常用到,所以在这里整理了一下校验方式. public class SignCheck {private C ...

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

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

  4. android签名校验代码,Android签名验证解析

    1.本文主要内容 知识回顾 签名验证解析 总结 本文介绍下Android在安装apk时,对签名的验证过程 2.知识回顾 在Android签名过程详解一文中,我已经详细说明签名的过程以及为什么要这么做, ...

  5. 面试:Android 签名校验机制 v1、v2、v3

    探究 Android 签名机制和原理 - 腾讯云开发者社区-腾讯云 一.APK签名可以带来以下好处 应用程序升级 如果想无缝升级一个应用,Android系统要求应用程序的新版本与老版本具有相同的签名与 ...

  6. Android系统安全 — 5.3-APK V2签名介绍

    1. V2签名原理 1. JAR V1签名是在apk文件(其实是ZIP文件)中添加META-INF目录,即需要修改数据区.中央目录,因为添加文件后会导致中央目录大小和偏移量发生变化,还需要修改中央目录 ...

  7. Apk去签名校验详解

    某些apk为了防止重打包,使用了签名校验.所以在破解的时候我们需要破解签名校验.在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPacka ...

  8. 安卓逆向_19( 二 ) --- APK保护策略【重新签名后安装打开失败 --- 书旗小说.apk、浦发银行.apk的过签名校验【so 文件修改保存】】

    From( 书旗小说过签名校验 [ 使用 DDMS 分析方法调用流程 ] ):https://www.cnblogs.com/LuLuLuHao/p/12874468.html 签名校验一般步骤: 1 ...

  9. 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】

    Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...

最新文章

  1. 提高mysql性能的开源软件
  2. 用OpenCV玩《铁拳》!!!
  3. RSA加密解密在jsencrypt+c#的实现-博客园加密登录
  4. sqlmap常用操作命令
  5. oracle分区大批量update,Oracle 对分区作调整记得加update global indexes
  6. Jobs added with no trigger must be durable
  7. HDU 5792 World is Exploding(树状数组+离散化)
  8. DB2 错误代码 命令大全
  9. 苹果手机软件升级密码_拥有苹果全家桶以后那些事
  10. Ubuntu安装时,下载太慢怎么办
  11. 三大开源bi工具_不用无限手套,人人都能开发 BI 系统------开源BI软件,可集成的BI工具...
  12. WebRTC音频处理流程简介
  13. 单域安全评估以及加固方案
  14. JOB SERVER 负载均衡
  15. Java练手小游戏---黄金矿工
  16. 华宇(大连)笔试-20190620
  17. 中国著名大学校训巡礼
  18. C#实现微信公众号群发消息(解决一天只能发一次的限制)实例分享
  19. HBuilderX 使用内置终端打开命令框 操作文件
  20. 服务器系统通用串行总线控制器,win7进入设备管理器发现无法启动通用串行总线控制器如何解决...

热门文章

  1. python求1到n的乘积_Python简单实现两个任意字符串乘积的方法示例
  2. 杭电多校第四场-H- K-th Closest Distance
  3. git遇到的一些问题
  4. JS识别不同浏览器信息
  5. PHP中对数据库操作的封装
  6. iosclient暑期“动画屋“活动项目总结
  7. spring+springmvc+ibatis整合小结
  8. Python3.0 我的DailyReport 脚本(一) 使用COM操作Excel
  9. c#常用函数和方法集
  10. Docker学习之路 用commit命令创建镜像