反编译演示:

通过dex2jar工具将dex文件转换为jar包


可以通过jd-jui工具将jar包的内容可视化

也可以将apk拖到Android Studio里面,将dex文件内容可视化,但是明显没有jd-jui这个工具专业,不推荐Android Studio

注意:代码混淆不属于加固!!!混淆后可以看到被混淆的代码,但是加固后看不到代码!!!

APK加固原理

将原来的apk中的dex文件通过加密module的aar中的函数加密变成新的dex文件,然后将该dex文件放到apk中。

具体步骤:
app模块引入加密模块




上面的代码将加密后的dex文件重命名,即在.dex后缀前加了下划线,以此来区分加密过的dex文件和未加密过的dex文件。




签名方法就是将命令行进行封装

运行代码后生成加密并签名后的apk

apk-signed.apk可以直接运行在手机
在Android Studio查看这个apk,发现经过加密的dex文件代码不可见,而加密模块aar的dex文件代码可见。

加密后的dex文件如何加载

加密后的apk之所以能运行,就是因为Android 系统解密了apk。为什么Android能解密呢?
就是因为我们上面的加密/解密模块aar对应的dex被打包进了我们的apk中,而且这个dex的代码是可以被看到的,也是能被运行到的。
当我们加密好的app安装到手机上后,第一次打开app时,就会运行到我们的解密模块的代码,将加密的dex文件解密,并覆盖原来的dex文件,以后打开app就不会再进行解密了。

解密的步骤:


当我们加密后的apk安装在手机上,第一次打开app后,就会运行到上面的代码将dex文件解密,以后打开app都不需要解密!!!

请注意:下面我们要使用的加密的密钥,必须以安全的方式获取,这里这么直接写在这个代码文件里面,是可以被别人看到的,是不安全的!!!

获取手机中存放apk的路径:data/data/包名




最后使用到的V19.install函数是MultiDex.java中的

Android APK加密原理与演示相关推荐

  1. Android APK签名原理

    Android APK 签名原理涉及到密码学的加密算法.数字签名.数字证书等基础知识,这里做个总结记录. 非对称加密 需要两个密钥,一个是公开密钥,另一个是私有密钥:一个用作加密的时候,另一个则用作解 ...

  2. 菜鸟第一次挑战apk逆向,结果整得怀疑人生,终于知道android apk加密的重要性...

    最近准备从x86上转移到linux上, 于是乎弄了个手游来玩, 正巧朋友推荐了一个修改软件,类似于八门神器.CE,用于搜索修改游戏数据,于是抱着好奇的心理初步研究了下该软件的原理: 研究了下软件, 搜 ...

  3. android软件更新模块实现的技术和方法,Android APK签名原理及方法

    一 Android签名机制及原理 Android系统在安装APK的时候,首先会检验APK的签名,如果发现签名文件不存在或者校验签名失败,则会拒绝安装,所以应用程序在发布之前一定要进行签名.给APK签名 ...

  4. Android APK签名原理及方法

    一 Android签名机制及原理 Android系统在安装APK的时候,首先会检验APK的签名,如果发现签名文件不存在或者校验签名失败,则会拒绝安装,所以应用程序在发布之前一定要进行签名.给APK签名 ...

  5. Android APK 加固-支持DEX虚拟化及资源加密

    Android apk加密方案 使用Virbox Protector 加密工具对Android APK进行加密,支持多种保护方式. 功能介绍 反调试功能,可抵挡动态调试,可以避免通过IDA等逆向工具分 ...

  6. Android APK加固(加壳)工具

    之前一篇文章Android proguard代码混淆,我们讲解了如何实现APK的代码混淆,让反编译者不那么容易阅读我们的源代码.虽然我们混淆,做到native层,但是这都是治标不治本的.反编译的技术在 ...

  7. 整理:Android apk 框架 布局 集锦

    2019独角兽企业重金招聘Python工程师标准>>> 看到好的技术教程就想分享一下,不喜勿喷!谢谢配合,仅供菜鸟学习研究(^o^)/~ 友情推荐<爱加密>Android ...

  8. 爱加密Android APk 原理解析

    转载请标明出处:http://blog.csdn.net/u011546655/article/details/45921025 爱加密Android APK加壳原理解析 一.什么是加壳? 加壳是在二 ...

  9. 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 后续分析 | Application 替换位置 )

    文章目录 一.ActivityThread 后续分析 二.ActivityThread 相关源码 三.Application 替换位置 dex 解密时 , 需要将 代理 Application 替换为 ...

  10. 实现Android APK加固:代码加密隐藏、资源加密隐藏、so库加密隐藏。兼容unity引擎。附加固工具链接。

    1.为什么做加固 因为不想辛辛苦苦做的东西,被别人拿去改成各种版,半路摘我的桃子. 所以需要将原包的一些核心东西进行加密影藏. 市面上比较好的解决方案就是进行加固,能提升apk安全性. 2.怎么加固 ...

最新文章

  1. linux下必看的60个命令
  2. 今夜,我又坐在电脑面前想你
  3. mysql中systimestamp_oracle数据库中timestamp是什么数据类型
  4. 仿Gin搭建自己的web框架(七)
  5. 2013-10-10
  6. 895. 最长上升子序列
  7. 用计算机解决问题听课笔记,《计算机解决问题的过程》的教学设计
  8. esp8266 rtos 开发环境 ubuntu_esp8266/32~资源帖[持续更新]
  9. php date hi,php中时间戳和日期格式的转换
  10. python模块--hashlib
  11. 现代软件工程 第一章 【概论】第6题——原旭莹
  12. 地面控制点的作用_地下室人防预留预埋施工要点及控制点
  13. html video播放rmvb,HTML如何播放rmvb格式的视频??要可以播放的代码。。。。
  14. python简易病毒制作
  15. 电脑主机组装总结——自己动手,丰衣足食
  16. windows下安装sloth
  17. 麻省理工大学计算机中心,Massachusetts Institute of Technology 麻省理工大学
  18. 痛苦的事, 伤心的事, 一生只需要一次, 别折腾, 别忘痛- 人生, 软件, 所有人皆如是!...
  19. 数据挖掘_task2数据探索分析
  20. 移动端手机软键盘遮挡输入框问题

热门文章

  1. VC2012学习笔记(控件)
  2. 【小插件】文字镂空“LSP”制作空心文字CAD
  3. 三菱控制器 梯形图 c语言 转换,三菱plc程序设计控制器系列软件功能简介
  4. linux 笔记本 显卡驱动下载地址,AMD Radeon HD系列Linux显卡驱动13.9版下载
  5. IDEA之配置SVN
  6. 【转】极品免费网站空间申请:000webhost.com免费1.5G美国空间PHP+MySQL
  7. WPS的文档上云 是中国式服务的胜利
  8. 随机信号分析与处理 相关
  9. inode客户端连接成功上不了网_iNode智能客户端常见问题及解决办法
  10. 计算机网络考研知识点史上最全背诵笔记