freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

安卓常见脱壳方法
2019-07-31 23:02:23

一、drizzleDumper

adb连接夜神模拟器

1.  打开夜神模拟器,打开设置,调成手机模式,初次进入的话,进入设置,点击版本号5次,可以激活使用开发者模式,进入后打开USB调试功能

image.png

2.  打开文件资源管理器,进入夜神模拟器的安装位置,在地址栏输入cmd,回车,会打开cmd窗口,进入的路径就是夜神模拟器的安装位置。我的默认安装位置:E:\ProgramFiles\yeshen\Nox\bin

image.png

3.输入nox_adb.exe connect 127.0.0.1:62001即可以连接到adb

或者是 adb connect 127.0.0.1:52001

adb connect 127.0.0.1:62001

image.png

4、adb devices查看连接设备情况

image.png

拖进模拟器

1、在模拟器下,执行adb push E:\01安装包\02app\Android砸壳\drizzleDumper-master /data/local/tmp (前面是物理机下drizzleDumper工具地址,后面是模拟器下指定地址)

image.png

2、adb shell进入shell模式,查看:

image.png

3、执行命令exit,退出shell模式,且用步骤1里的命adb pushC:\Users\Administrator\Desktop\apk\anma_driver.apk /data/local/tmp将要脱壳的APP放入到模拟器中

image.png

4、赋予drizzleDumper超级权限chmod 777/data/local/tmp/drizzleDumpe/libs/x86/drizzleDumper

image.png

image.png

脱壳

1、adb shell下执行/data/local/tmp/drizzleDumpe/libs/x86/drizzleDumper com.amcx.driver

image.png

2、可见脱了壳的文件保存在/data/local/tmp文件中

二、Xposed框架及Fdex2脱壳

安装配置环境

1、百度搜索FDex2、MT管理器、开发者助手、Xposed Installer、要实验的软件(同声翻译超级版),下载相应的APP安装包,在手机或模拟器中安装

image.png

2、Xposed Installer的基本原理是修改了ART/Davilk虚拟机,将需要hook的函数注册为Native层函数。当执行到这一函数是虚拟机会优先执行Native层函数,然后再去执行Java层函数,这样完成函数的hook。在安装Xposed时会遇到一下问题:

(1)安装框架时报TheXposed framework is not installed.Please download the latest ZIP file from XDAand flash it manually via recovery.

image.png

下载SDKplatform23,放到模拟器安装目录的platforms文件夹下

image.png

(2)安装完XposedInstaller后,打开软件,状态为Xposed框架未安装

image.png

点击official,选在我们需要的版本进行安装

image.png

image.png

安装完成后重启模拟器即可生效

image.png

 

在模块中勾选FDex2软件,重启模拟器后生效

image.png

脱壳步骤

1、打开开发者助手,赋予相应权限及悬浮窗

image.png

2、打开要脱壳的目标APP,点击开发者助手悬浮窗,可查看该APP是否加壳

image.png

3、打开FDex2,点击要脱壳的APP名称,弹出dex输出目录等信息,保存该路径

image.png

4、打开MT管理器,进入/data/user/0/android.translate.xuedianba,查看hook出来的dex文件

image.png

 

5、上图红色框内的dex文件不能编译,所以我们需要把它移动到左侧文件列表中

image.png

6、在/data/app/android.translate.xuedianba-1路径下找到要脱壳的目标软件包,点击base.apk查看其详细信息

image.png

7、点击查看,可以进入目标软件的各文件路径

image.png

8、在步骤5中找到与步骤7中classes.dex文件大小差不多的dex文件,用dex编辑器打开,查看里面是否含有步骤3中的hook包名

image.png

image.png

image.png

9、找到对应dex文件并删除多余的dex文件,对该文件重命名为classes.dex文件,

image.png

并移动到软件安装包内(如果报无权限,可在属性中修改相应权限)

image.png

10、AndroidManifest.xml用反编译方式打开,把第15行的com.tencent.StuShell.TxAppEntry替换成18行的android.translate.xuedianba.BaseApplication,替换完之后删除第16-18行 

image.png

image.png

保存并退出文件

image.png

11、提示:在压缩文件中更新,点击确定

image.png

12、打开软件的功能选项,点击apk签名

image.png

13、签名成功后,点击安装(此处要先卸载之前安装的版本,卸载完之后安装即可)

image.png

image.png

三、frida脱壳

Frida安装

Frida的安装很简单,需要在windows安装frida客户端和在安卓安装frida服务端。

 1、在windows安装客户端

安装python和pip,注意添加环境变量,打开pip的安装包,输入命令python setup.py install

image.png

image.png

安装好后,配置环境变量

image.png

安装完python和pip之后打开CMD,使用命令 pipinstall frida,安装完如下图所示。

image.png

安装frida-tools,执行命令pip install Frida-tools

image.png

备注:解决Unknown orunsupported command 'install'的问题

1、wherepip找出 所有 pip的路径;

image.png

2、找到,并进入Python下的那个pip路劲;

3、再通过pipinstall  selenium 安装 即可;

image.png

 2) 在手机中安装服务端

首先到github上下载frida-server,网址为https://github.com/frida/frida/releases, frida提供了各种系统平台的server,我的手机为红米5plus,是64 arm,所以我下载的为arm64(下载版本应和frida版本对应)

image.png

解压后,使用adb将frida-server放到手机目录/data/local/tmp,

image.png

然后修改属性为可执行

image.png

3) 测试安装环境

首先启动手机上的frida服务器,记得要以root权限启动,

image.png

然后在windows主机上的python>Scripts目录下另外开启一个cmd,输入命令 frida-ps -U ,这行命令是列出手机上所有的进程信息,如果出现进程信息则说明环境搭配成功:

image.png

脱壳

在手机上启动frida server端

执行脱壳脚本

脱壳后的dex保存在/data/data/应用包名/目录下

# 安卓安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者