美文网首页
APK渠道打包与APK加密加固

APK渠道打包与APK加密加固

作者: 背影杀手不太冷 | 来源:发表于2016-08-22 19:50 被阅读634次

标签(空格分隔): Android

APK渠道打包##

  • 通过友盟

参考StormZhang文章
比较常见的友盟移动统计sdk中使用的方案,UMeng要根据各应用市场渠道号来进行一些统计和分析,比如各渠道的下载数、活跃度、自动更新等等。这种方案是 通过build.gradle脚本中的productFlavor 来实现的。首先在AndroidManifest.xml文件的 application 标签里指定一个 meta-data ,然后Umeng SDK会读取这个标签中value传到Umeng的后台,这样就可以让开发者监测到自己的应用程序渠道分布情况了。
【注意的是,虽然这里用到了友盟的标签,但是不用像引入友盟推送是将友盟SDK集成到项目依赖?】

自动化打包+版本号管理
定制生成的apk文件名、Android Studio设置默认的签名文件

  • 美团的打包方案(现阶段最快)-打包界的曙光
    用友盟传统的批量打包方式,最大的缺点就是打包时间长。在前期渠道很少时这种方法还可以接受,但只要渠道稍微增多该方法就不再适用了,原因是每打一个包都要执行一遍Gradle构建过程,效率太低。
    原理:


    此处输入图片的描述此处输入图片的描述

到这里,思路就有了。
1、在META-INF中放置一个类似 channel_xxx 的空文件来标识市场。
2、在Java代码中解析这个文件名获取市场xxx即可。
具体步骤:文章

那Gradle构建是不是没用了呢?
当然不是,Google老大为他做了这么多,怎么能说不用就不用呢?
他的用处在于实现订制,比如打包出x86和arm的包,或者打出手机包和适应平板的hd包,然后借助上面的美团的打包方案工具生成多个市场,即完成了多种适配包多个市场的任务。


加密加固APK

  • 什么是加壳?

    加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。
    
此处输入图片的描述此处输入图片的描述
  • Android Dex文件加壳原理


    此处输入图片的描述此处输入图片的描述

    PC平台现在已存在大量的标准的加壳和解壳工具,但是Android作为新兴平台还未出现APK加壳工具。Android Dex文件大量使用引用给加壳带来了一定的难度,但是从理论上讲,Android APK加壳也是可行的。
    主要步骤:
    我们拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可,得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk.他已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk.然后加载Apk,让其正常运行起来。
    在这个过程中,牵扯到三个角色:
    1、加壳程序:加密源程序为解壳数据、组装解壳程序和解壳数据
    2、解壳程序:解密解壳数据,并运行时通过DexClassLoader动态加载
    3、源程序:需要加壳处理的被保护代码

  • 根据解壳数据在解壳程序DEX文件中的不同分布,本文将提出两种Android Dex加壳的实现方案。
    参考文章
    1、解壳数据位于解壳程序文件尾部
    2、解壳数据位于解壳程序文件头

  • 加固实战
    代码实现参考文章
    在实战中的坑请参考稀土掘金文章

  • 各大加密平台的对比与常见app漏洞及风险
    文章

相关文章

  • APK渠道打包与APK加密加固

    标签(空格分隔): Android APK渠道打包## 通过友盟 参考StormZhang文章比较常见的友盟移动统...

  • Android APK 加固重新签名

    APK 加固流程 打包APK 通过 ./gradlew assembleRelease 命令打包,此时的apk没有...

  • Android 多渠道打包

    步骤:配置多渠道 -> 360加固助手多渠道打包加固 -> 批量修改生成的APK名称 1、在 AndroidMan...

  • Android加壳脱壳

    Android 加固与脱壳 加固与脱壳常用加固 so 文件特征分析 apk 加固动态调试分析 apk 加固-环境搭...

  • android代码混淆详解

    1、前言 在对apk进行打包时,如果不对apk进行混淆和加固,生成的apk可以轻松的进行反编译,所以对apk代码进...

  • 安全

    加固针对未签名的apk进行加固,可以实现对apk的加壳,运行时加固:请求、缓存文件等进行加密非运行时加固:针对de...

  • Android 数据安全

    代码混淆 & apk的加固 常用加固平台:爱加密、360加固、腾讯加固、梆梆加固 Android应用加固原理 网络...

  • Android Studio 下多渠道打包

    为什么需要多渠道打包 渠道可理解成安卓apk应用市场平台,所以多渠道打包可以理解成在打包多个应用市场的apk,要在...

  • AndroidStudio多渠道打包自定义Apk名称

    多渠道打包 自定义打包Apk名称

  • 多渠道打包

    多渠道打包的作用:apk--发布到市场上(渠道就是可以下载apk的地方) 1.0:发布到不同渠道上的apk,标记不...

网友评论

      本文标题:APK渠道打包与APK加密加固

      本文链接:https://www.haomeiwen.com/subject/kojgsttx.html