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

2023-03-30 09:04:48 浏览数 (2)

文章目录

  • 一、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 再进行不同的深入分析 ;

0 人点赞