Android 逆向APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程相关的知识,希望对你有一定的参考价值。





一、APK 加壳脱壳现状



加壳覆盖率很高 : 当前的应用 , 基本上 90% 都会加壳 , 各大加固厂商 , 基本都 提供免费的加壳服务 ; 很难找到不加壳的应用 ;


脱壳场景 :

  • 竞品分析 : 分析竞品 APK 时 , 如果对方加壳 , 需要 先脱壳 , 然后才能分析 ;

  • 恶意操作分析 : 恶意应用一般都会加壳 , 并且加的壳都很特殊 , 需要 先进行脱壳 , 然后才能进行恶意代码分析 ;





二、判断 APK 是否加壳



如何判断一个 Android 应用是否加壳 :

  • 直接解压观察 : 将应用 APK 解压 , 观察其特征 ;
  • Android Killer 分析 : 使用 android Killer 等工具分析 APK 文件 , 会提示加壳信息 , 分析加壳种类 ; 每种加壳的方式都会留下加壳的指纹特征 ;
  • GDA 分析 : 使用 GDA 分析 APK 文件 , 将 APK 文件直接拖动到 GDA 中 , 就会进行自动分析 ;




三、APK 逆向流程



检测加壳 : 使用检测工具 如 GDA 等 , 判断 APK 文件是否加壳 ; 根据加壳的相关指纹信息 , 判断加的是哪种壳 ;

脱壳 : 针对 APK 加壳类型 , 进行 脱壳 ;

反编译 : 使用 反编译工具 如 ApkTool , JEB , Jadx 等 , 对 APK 进行反编译操作 ;

定位关键函数 :

  • 静态分析 : 静态分析 得到 关键 字符串 , 函数 等信息 , 定位需要分析的 关键函数 ;
  • 动态分析 : 使用 Hook , 动态调式 技术 , 进行 动态分析 ;

深入分析 : 根据 关键函数 是 Java 还是 C/C++ 再进行不同的深入分析 ;

以上是关于Android 逆向APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向脱壳解决方案 ( DEX 整体加壳 | 函数抽取加壳 | VMP 加壳 | Dex2C 加壳 | Android 应用加固防护级别 )

IOS逆向学习-加壳脱壳

iOS 逆向工程(十三)之加壳与脱壳

逆向工程之App脱壳

逆向基础:软件手动脱壳技术入门

iOS逆向工程之给App脱壳