apk加固+多渠道总结记录
1.前期准备不充分的地方
--没有确认加固操作到底是做了哪些事
优化class.dex,将根目录下的多个class.dex文件加密后放到特定目录下,根目录只保留一个加密相关的class.dex。apk安装的时候再解密并恢复原来的多个class.dex文件。
脚本中完全删除了META-INF文件夹,但实际可根据需要,只删除签名相关的.SF文件
--没有完全了解多渠道打包的原理
content of zip,center of directory,EOCD,这三个目录是zip文件的格式,并不是apk特有的格式。第一次发现加固后取不到渠道号,以为是加固方案的删除操作修改了EOCD,导致多渠道注入失效。但其实加固后,对文件夹重新zip了,最后发现其实是因为签名方案的问题导致多渠道注入失败。(用了29.0.1目录下的apksigner,导致apkverify验证不通过)
2.学到的内容
--签名相关
jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore [*.keystore] -storepass [... ] -signedjar [签名后.apk] [签名前.apk] [keystore别名]
jarsigner -verify 签名后.apk //验证签名
sdk目录\build-tools\28.0.3\apksigner sign --out [签名后文件.apk(不指定则替换原apk)] --ks [*.keystore] --ks-key-alias [别名] --key-pass [签名的keyPassword] --ks-pass [keystore的password]
sdk目录\build-tools\28.0.3\apksigner verify -v [签名后apk] | more
apksigner 不同sdk版本下实现不同,android7.0之前 是v1签名,29之前是v1+v2,29及之后是v1+v2+v3
这里我们用的是28.0.3目录下的,会对apk进行v1+v2签名。
--多渠道打包相关
采用的多渠道打包原理是利用V2签名可以修改sign block以及EOCD可以定位到sign block的特性,往sign block中插入渠道相关的信息,再通过同样的原理来读取。
所以必须要V2签名后才可以进行多渠道信息的注入。
--排查问题
一开始打包报错时,没有很快的定位到问题。应该在多渠道注入任务报错时,及时的添加日志,确认失败原因。当定位到是签名问题的时候,手动运行apksigner verify来验证。该脚本验证没问题,但是发现有V3签名,查找相关说明。V3是从29添加的,更换低版本
apk加固+多渠道总结记录相关推荐
- android加固是什么意思,apk加固(乐固)
最近项目要上市场了,虽然已经给apk加了混淆,但是听同事说,还有加固工具可以更好的保护apk.特地去用了一下apk加固. 目前加固工具挺多的,我听到的有腾讯的乐固和360安全加固. 这次选腾讯的乐固. ...
- Android之Apk加固
上一篇:Android之Apk打包原理之后,今天记录一下多渠道打包. 首先,说明一下Apk加固的意义: 懂点反编译原理的人可以轻松编译出apk的源码资源,并且可以修改资源代码.重新打包编译. apk加 ...
- IO操作Dex文件加密,APK加固项目实战
APK加固原理分析 1.1 APK文件结构 首先让我们先了解一下一个完整的Android应用程序都由哪些文件组成.解压一个apk包,我们可以看到一下的这些文件及文件夹: 每个文件及文件夹的作用如下表所 ...
- 【Android 安全】Android 应用 APK 加固总结 ( 加固原理 | 应用加固完整的实现方案 | 源码资源 )
文章目录 一. APK 加固原理 1. Android 应用反编译 2. ProGuard 混淆 3. 多 dex 加载原理 4. 代理 Application 开发 5.Java 工具开发 6.Ap ...
- android 加固作用,浅谈安卓apk加固原理和实现
二.apk加固原理 (1)apk文件结构 解压一个apk包,可以看到如下目录结构: assets:存放工程资源(图片.本地html等)文件的目录 Lib:存放ndk编译出来的so文件(so:C/C++ ...
- Android APK加固技术方案调研
@author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断 ...
- Android中apk加固完善篇之内存加载dex方案实现原理(不落地方式加载)
一.前言 时隔半年,困扰的问题始终是需要解决的,之前也算是没时间弄,今天因为有人在此提起这个问题,那么就不能不解决了,这里写一篇文章记录一下吧.那么是什么问题呢? 就是关于之前的一个话题:Androi ...
- Java IO在Android中应用(三):Apk加固去壳
Java I/O在Android中应用(三):Apk加固去壳 前言(废话) 现在在动车上,因为最近接到一个紧急的出差任务,需要去一趟江苏我们移动应用的客户现场.说真的,本来其实我是很困的,但是车上有一 ...
- Java IO在Android中应用(二):APK加固
Java I/O在Android中应用(二):APK加固套壳 前言(废话) 我,有两把键盘,第一把是Poker III(黑轴),第二把是Poker II(红轴).工作的时候我常用的是红轴的Poker ...
最新文章
- Microsoft.VsHub.Server.HttpHost
- java定义全局变量_矮油,你知道什么是 Java变量的作用域 嘛?
- u2020 华为_华为站点打LICENSE步骤
- 安装Eclipse插件
- python 分析两组数据的差异_R语言limma包差异基因分析(两组或两组以上)
- mysql更新数据索引慢_mysql添加索引,查询反而变慢
- Verizon部署美国最大小型基站系统
- 红黑树插入和删除的各种情况分析
- Uniform Distribution均匀分布
- mysql 单向自动同步_mysql单向自动同步
- 在手机里输入八卦及64卦符号(老年教程)
- ajax和jquery教程pdf,jquery ajax教程pdf
- 大学二年级-- “赖”在实验室的发明达人
- 【博弈论】翻硬币游戏8种模型
- SLAM常见面试题集锦
- 3500元预算配置一台办公用台式计算机,配台式电脑机,预算3500左右,请问如何配置,各配件功能作用及大? 爱问知识人...
- 【只推荐一位】木东居士,带着大家一起成长的数据科学大神!
- 分时电价模型,削峰填谷,转移24小时一天中用电率,减少谷峰差
- buu-[Zer0pts2020]easy strcmp
- 网页整体布局基本模板