APK脱壳

Posted by Don on December 12, 2018

前言

在这个反编译横行的时代,大家一定遇到过被加壳的apk,那么,下面开始apk脱壳之旅。

一、脱壳

1. 工具下载

  • FDex2
    通过Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),在将里面的dex写出。
    下载地址:
    链接: https://pan.baidu.com/s/1lTF8CN96bxWpFwv7J174lg 提取码: 3e3t

  • VirtualXposed
    不想root手机的必备软件
    下载地址: https://vxposed.com/

2.脱壳

  • Step1:
    将VirtualXposed安装到手机上。

  • Step2:
    启动VirtualXposed,并在VirtualXposed中安装FDex2、MT管理器和需要脱壳的应用。
    在VirtualXposed中安装App有两种方式:
    1.直接复制已经在系统中安装好的APP,比如如果你系统中装了微信,那么可以直接复制一份。
    2.通过外置存储直接安装APK文件;点主界面的右下角“┇”按钮添加应用,然后选择后面两个TAB即可。

  • Step3:
    在VirtualXposed中激活FDex2:

  • Step4:
    启动VirtualXposed中的FDex2,点击要脱壳的应用,并记录输出目录。

  • Step5:
    运行软件,不打开运行软件是无法脱出壳的

  • Step6:
    启动MT管理器,并长按右下角“↑”按钮,输入FDex2脱壳目录即可进入目录,然后通过分享功能将文件转出即可。

至此,脱壳已经完成,剩下就是正常的反编译工作了,如有需要请查看我之前的博文 反编译APK

补充说明:

并不是所有的加固的安卓apk都能成功脱壳的,但是大部分免费的加固都可以脱壳。

apk被反编译后,从dex或jar包的目录结构往往可以看出是哪家的加密方案,当然在此也推荐一款查看工具,点此查看