• APK加固项目实战
  • APK脱壳技术实战

一.APK文件反编译

1.什么是反编译
  • 定义:
    利用编译程序从源语言编写的源程序产生目标程序的过程
2.怎么进行反编译?

先了解apk的文件构造结构

二.加固方案思想

一个程序员的故事:

辛辛苦苦找到一个对象,结婚后发现是个母夜叉。不给管钱就闹,晚上睡觉她趴着睡,导致这程序员无法去洗脚了。然而这个程序员很努力,平时除了上班,还能够做点外包,赚点外快。所以他就想到了把工资卡上交,而把赚到的外快放到了自己的小金库。从此过上了性福生活

一个加密的故事:

通过将非核心的dex文件进行暴露来达到保护核心dex文件的目的。

三.基本原理

3.1Apk打包流程

加壳是在原来apk的基础上加一层保护壳,dex文件修改了就需要重新打包,否则apk安装不了。这就需要我们详细学习apk如何打包的

3.2Dex文件是什么

加固的目的是保护dex,直接而言就是对dex文件进行操作,对dex文件动刀子,必须知道dex文件是什么,能否直接动刀子

3.3Dex文件加载流程

加壳后的文件是不能直接用的,dex文件是加密的,所以我们需要对他进行解密,解密后的dex文件如何加载?

3.4APK文件是怎么生产的


rip%7CimageView2/2/w/1240)

四.加固总体框架


那么问题来了:

  • 如何达到加密效果?
  • 为什么是两个系列的dex?
  • 壳dex 怎么来的
  • 壳dex如何保护源dex?
  • 如何签名?
  • 如何运行新dex(如何脱壳)?
4.1加密过程

4.2APK文件如何签名


4.3APK文件如何运行(脱壳)

4.4如何制定某些类在 main dex中
  • multiDexKeepFile:手动加入要放到Main.dex中的类

com.umeng.analytics.Abb.class

:手动加入要放到Main.dex中的类

com.umeng.analytics.Abb.class

关于AES:加密方式,让你的APK无懈可击(1),死磕原理相关推荐

  1. cryptojs php 互通_PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】

    本文实例讲述了PHP7实现和CryptoJS的AES加密方式互通.分享给大家供大家参考,具体如下: PHP类: class AES { /** * * @param string $string 需要 ...

  2. cryptojs php 互通_关于PHP7和CryptoJS的AES加密方式互通

    对于PHP7与CryptoJS的AES加密的方式互通代码不能正确执行,我的测试代码为: JS端:let iv = CryptoJS.enc.Utf8.parse('1111111111111111') ...

  3. Python实现前端AES加密方式分析,***密码学必备!

    在前端常见的加密方式中AES很少使用,因为相对于非对称的RSA安全性很低,AES是典型的对称加密,密钥就在前端源码里. 案列网站是ewt360.com,一个并不复杂的网站,首先抓个包看看: 加密字段只 ...

  4. 0宽字符加密_前端AES加密方式分析,及其python实现

    在前端常见的加密方式中AES很少使用,因为相对于非对称的RSA安全性很低,AES是典型的对称加密,密钥就在前端源码里. 案列网站是http://ewt360.com,一个并不复杂的网站,首先抓个包看看 ...

  5. java代码实现python2中aes加密经历

    背景: 因项目需要,需要将一个python2编写的aes加密方式改为java实现. 1.源python2实现 from Crypto.Cipher import AES from binascii i ...

  6. Python 的AES加密与解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现. python 在 Windows下使用A ...

  7. python实现字母的加密和解密 字典_python实现AES加密与解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AE ...

  8. python AES加密解密

    AES,是美国联邦政府采用的一种加密技术,AES有几个模式,其中CBC模式是公认的安全性最好的模式,被TLS所采用. 加密与解密双方需确定好key,key的长度可以是16位,24位,32位中的一个,分 ...

  9. Php AES加密、解密与Java互操作的问题

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

最新文章

  1. csdn上传资源提示“该资源已存在,请重新上传”
  2. 2021-06-082021年春季学期-信号与系统-第十五次作业-第四小题参考答案
  3. 爬虫python代码-Python爬虫入门(01) -- 10行代码实现一个爬虫
  4. 轻松学习,高效学习,那些年大学玩命的学习方法
  5. 异常-主动抛出异常案例演练
  6. Wave-Share -无服务器,点对点,通过声音共享本地文件
  7. 光源时间_D65光源对色灯箱的操作步骤及作业标准
  8. 库克谈iPhone 12供应紧张问题;2020中国互联网百强名单:阿里、腾讯、美团分列前三;Dgraph新版发布|极客头条
  9. Java基础篇:什么是线程优先级?
  10. 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
  11. oracle中每月调用一次,JOB——手工指定Oracle中job执行的时间间隔
  12. 开源APP源代码、游戏源代码
  13. 注塑机结构及辅助设备详解
  14. 一杯茶的时间,上手第三方登录类库 JustAuth
  15. matlab中readfid函数,matlab中textscan和textread函数的比较使用
  16. WPS复选框显示太阳问题解决方法
  17. 首次全面深度解密华为方舟编译器
  18. 做软件实施应该学哪些计算机知识,ERP实施顾问的职责及经验总结-乾元坤和
  19. 展现量、点击量、点击率;访客数、访问次数、浏览量的区别与作用
  20. Hex Editor Neo Ultimate系统要求

热门文章

  1. 我的前端学习之路-----HTML+css(一)
  2. 1309 【例1.6】回文数(Noip1999)
  3. 【spark】Spark SQL:INSERT INTO语句语法
  4. 最新App、手机网站尺寸规范—移动设备界面UI设计尺寸规范
  5. postgres查询排名
  6. 软件开发中“埋雷容易,排雷难”
  7. 关于echarts图中的柱状图添加横线问题
  8. python 矩阵输出
  9. HCNA静态路由配置
  10. 集成灶哪个品牌性价比高质量好,集成灶品牌排行榜前十