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加固+多渠道总结记录相关推荐

  1. android加固是什么意思,apk加固(乐固)

    最近项目要上市场了,虽然已经给apk加了混淆,但是听同事说,还有加固工具可以更好的保护apk.特地去用了一下apk加固. 目前加固工具挺多的,我听到的有腾讯的乐固和360安全加固. 这次选腾讯的乐固. ...

  2. Android之Apk加固

    上一篇:Android之Apk打包原理之后,今天记录一下多渠道打包. 首先,说明一下Apk加固的意义: 懂点反编译原理的人可以轻松编译出apk的源码资源,并且可以修改资源代码.重新打包编译. apk加 ...

  3. IO操作Dex文件加密,APK加固项目实战

    APK加固原理分析 1.1 APK文件结构 首先让我们先了解一下一个完整的Android应用程序都由哪些文件组成.解压一个apk包,我们可以看到一下的这些文件及文件夹: 每个文件及文件夹的作用如下表所 ...

  4. 【Android 安全】Android 应用 APK 加固总结 ( 加固原理 | 应用加固完整的实现方案 | 源码资源 )

    文章目录 一. APK 加固原理 1. Android 应用反编译 2. ProGuard 混淆 3. 多 dex 加载原理 4. 代理 Application 开发 5.Java 工具开发 6.Ap ...

  5. android 加固作用,浅谈安卓apk加固原理和实现

    二.apk加固原理 (1)apk文件结构 解压一个apk包,可以看到如下目录结构: assets:存放工程资源(图片.本地html等)文件的目录 Lib:存放ndk编译出来的so文件(so:C/C++ ...

  6. Android APK加固技术方案调研

    @author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断 ...

  7. Android中apk加固完善篇之内存加载dex方案实现原理(不落地方式加载)

    一.前言 时隔半年,困扰的问题始终是需要解决的,之前也算是没时间弄,今天因为有人在此提起这个问题,那么就不能不解决了,这里写一篇文章记录一下吧.那么是什么问题呢? 就是关于之前的一个话题:Androi ...

  8. Java IO在Android中应用(三):Apk加固去壳

    Java I/O在Android中应用(三):Apk加固去壳 前言(废话) 现在在动车上,因为最近接到一个紧急的出差任务,需要去一趟江苏我们移动应用的客户现场.说真的,本来其实我是很困的,但是车上有一 ...

  9. Java IO在Android中应用(二):APK加固

    Java I/O在Android中应用(二):APK加固套壳 前言(废话) 我,有两把键盘,第一把是Poker III(黑轴),第二把是Poker II(红轴).工作的时候我常用的是红轴的Poker ...

最新文章

  1. Microsoft.VsHub.Server.HttpHost
  2. java定义全局变量_矮油,你知道什么是 Java变量的作用域 嘛?
  3. u2020 华为_华为站点打LICENSE步骤
  4. 安装Eclipse插件
  5. python 分析两组数据的差异_R语言limma包差异基因分析(两组或两组以上)
  6. mysql更新数据索引慢_mysql添加索引,查询反而变慢
  7. Verizon部署美国最大小型基站系统
  8. 红黑树插入和删除的各种情况分析
  9. Uniform Distribution均匀分布
  10. mysql 单向自动同步_mysql单向自动同步
  11. 在手机里输入八卦及64卦符号(老年教程)
  12. ajax和jquery教程pdf,jquery ajax教程pdf
  13. 大学二年级-- “赖”在实验室的发明达人
  14. 【博弈论】翻硬币游戏8种模型
  15. SLAM常见面试题集锦
  16. 3500元预算配置一台办公用台式计算机,配台式电脑机,预算3500左右,请问如何配置,各配件功能作用及大? 爱问知识人...
  17. 【只推荐一位】木东居士,带着大家一起成长的数据科学大神!
  18. 分时电价模型,削峰填谷,转移24小时一天中用电率,减少谷峰差
  19. buu-[Zer0pts2020]easy strcmp
  20. 网页整体布局基本模板

热门文章

  1. 再论信息化的隐性成本
  2. 嵌入式Linux驱动开发笔记(未完待续。。。)
  3. leetcode 1046 最后一块石头的重量
  4. 电商违禁词查询工具在线检查
  5. Imagex 安装 WIN7/8 系统
  6. 重组后的中国移动该怎么样看待WLAN?
  7. flash读取程序 msp430_MSP430读写flash程序
  8. 国产十大工业机器人品牌有哪些?规模有多大,研发实力如何?
  9. 通信值勤维护管理条例_军队强化通信装备管理研究
  10. E店宝ERP软件服务电商日化类目案例分析