我不找问题,但是会有问题一直找过来。最近又碰上了一个棘手的问题 —— SDK 加固,在网上可以找到很多第三方平台,都会支持 APK/SDK 加固。细看一下,好嘛,APK 加固还好,还可以白嫖一下;SDK 加固清一色的收费,我就是一个小小的码农,开发几个功能,为了个人利益想加固一下,还要为了几两碎银头疼。

没办法,只能自己看看怎么玩了。思路主要是借鉴 APK 加壳的方式,这个技术方案,说实在的其实比较老了(现在都是玩 VMP 的),不过好在入门门槛不高,还可以搞搞。

加固原理

对 SDK 进行加密,这样通过反编译拿到 SDK 就只是一个加密文件,在使用 SDK 的时候,提前对加密文件进行脱壳,拿到原始的 SDK,动态加载 SDK。

加固流程

1、通过加壳工程对 SDK 加密,形成加密文件。
2、加密文件作为资源,添加到脱壳工程。
3、APP 引用脱壳工程,APP启动后, 使用脱壳工程对加密文件脱壳解密,动态加载到内存。

上述流程中还存在一些内容是需要慎重考虑的
1、密钥的保管,只要拿到了密钥,通过反编译脱壳工程,调用脱壳工程的解密流程,就可以拿到原始的 SDK 文件。
2、脱壳工程对加密文件的解密的过程,会存在落盘(SD 卡或者缓存环境)的动作,需要注意隐藏解密的路径,或者通过一些加密方式对落盘的文件路径加密(需要管理访问密钥)。

依赖关系

依赖关系均属于项目构建过程

脱壳过程

APP 调用加密 SDK 的过程

参考工程结构

APP:调用 SDK 的 demo,依赖 unpackshell、inteface 模块。
SDK:功能实现,依赖 inteface 模块,考虑到动态加载 SDK 后,需要依赖打桩的方式调用接口。
crypt:加解密库,实际开发过程中需要混淆,建议使用 C/C++ 来实现。
packshell:对 SDK 进行加密操作的脚本工程。
unpackshell:APP 实际依赖的脱壳工程,该工程需要持有加密后的 SDK;调用时,解密脱壳,动态加载。
inteface:打桩接口。

Android SDK 加壳加固相关推荐

  1. Android App Bundle混淆加密加壳加固保护的解决方案(过Google App上架审核)

    Android AAB简介和AAB包格式 AAB即Android App Bundle,是Google官方发布的一种新的App包格式,可以有效缩减App大小,提升用户安装和更新App的体验.在Goog ...

  2. Android APK加壳技术方案----代码实现

    本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/8746917 作者:Jack_Jia    邮 ...

  3. 【胖虎的逆向之路】02——Android整体加壳原理详解实现

    [胖虎的逆向之路](02)--Android整体加壳原理详解&实现 Android Apk的加壳原理流程及详解 文章目录 [胖虎的逆向之路](02)--Android整体加壳原理详解& ...

  4. 【原创】Android VMP加壳 POC

    介绍 这个壳的核心--字节码解释器,它参考了dalvik虚拟机的解释器.不需要hook.注入.目前只支持算数运算指令. 我个人把dalviki指令分为这么几类: 算数运算指令. 引用类指令.如cons ...

  5. Android DEX加壳

    1. APP加固 1). 原理 图1.png 加密过程的三个对象: 1.需要加密的Apk(源Apk) 2.壳程序Apk(负责解密Apk工作) 3.加密工具(将源Apk进行加密和壳Dex合并成新的Dex ...

  6. Android Apk加壳技术实战详解

    前言 前几天面试了一家信息加密相关的公司,经过两轮面试原以为坐等HR,结果还有一个实践测试ORZ-面试这么多家公司,真心觉得这家公司很特殊,尤其是那个逻辑测试-算了,不扯远了,走回正题. 面试官加我Q ...

  7. Android UPX加壳源码解析

    ​目录 一. UPX加壳的原理 1. UPX的工作原理 2. UPX实时解压的原理和流程 3. UPX加壳应用的场景 4. 修改UPX源码需要注意以下几点 二. UPX加壳Android so的方法和 ...

  8. 关于apk软件的加固加壳和签名打包

    昨天搞了个apk软件.软件首先通过android killer进行反编译了一下.编译签名后是可以正常使用的.但是和朋友交流后结论是要学习进行一个加固处理. 由于自身目前是小白一个.正在学习网络技术知识 ...

  9. android apk 防止反编译技术加壳技术(转)

    2019独角兽企业重金招聘Python工程师标准>>> 一.加壳技术原理 所谓apk的加壳技术和pc exe的加壳原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非 ...

最新文章

  1. 优先级队列(头条面试题)
  2. RocketMQ(二):参数配置大全
  3. XML 新手最佳入门教程
  4. Silverlight 山寨版样式浏览器
  5. Javascript - ExtJs - 组件 - 分页
  6. JavaScript从入门到精通之入门篇(二)函数和数组
  7. 如何成为有效学习的高手(许岑)——思维导图
  8. u-boot移植随笔:u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定(补记)
  9. mybatis 鉴别其_MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询
  10. treeview找到节点并展开_我们从100个经典韩剧中,找到8个「神套路」,这样写抖音剧本个个都是爆款!...
  11. IDL| 实现两个数相加,并且询问是否循环
  12. TE银令契约,2019颠覆行业模式,造就大批巨富
  13. 【知识兔】两列Excel数据快速合并为一列,你会哪种方法?
  14. arduino eeg脑电模块_手把手教你EEG脑电数据预处理-原理篇
  15. 说话人识别(声纹识别)综述
  16. 京东商品3D展示怎么做?
  17. 邮箱163登录入口?邮箱163注册格式是什么?
  18. 梯度下降算法与随机梯度下降算法:实现波士顿房价问题
  19. vue 跳转新窗口传递参数并改变窗口名称
  20. 阿里巴巴牵头发起对雅虎的250亿美元并购

热门文章

  1. js at(),isInteger(),sign(),Array.of()的使用
  2. 几种定时器和延时方法
  3. 文件共享之SMB/CIFS协议及Samba的使用
  4. html 图片局边框的边距,0032 如何使用css调整网页元素的边距和边框
  5. 腾讯云动态公网IP绑定域名实现内网服务器公网穿透
  6. 数据库中select将查询结果多加一个字段并填写内容
  7. Faster-Rcnn-TF 输入图像尺寸变换
  8. 杜利特尔 (Doolittle)矩阵分解法求线性方程组的解
  9. 解授权版/H5脱单盲盒交友/分销提现/ 存取小纸条/盲盒匹配/管理平台/免签支付/封装app
  10. TCP/IP的层次结构、各层数据封装过程、数据包结构--解析