今天遇到一个加了壳的安卓题,[网鼎杯 2020 青龙组] bang,这是我第一次遇见加壳的 apk 程序,加了 bang 这个壳,第一次去这种壳所以记录一下,以免以后忘记

这里首先使用 PKID 这个工具来查壳,在网上可以搜到,然后就可以看到

然后就要用到 frida-dexdeump 脚本来脱壳,在使用这个脚本之前,还要在连接安卓系统的条件下使用,在这里还要配置一下 frida 的环境

# 第一步,在 windows 下安装 frida 模块和 frida-tools 模块

先安装 frida 模块

1
pip install frida

然后安装 frida-tools 模块

1
pip install frida-tools

在安装完之后,要将他们所在的路径添加到环境变量中,否则无法使用 frida 指令

# 第二步,安卓系统下安装 frida-server

要与安卓系统进行连接,首先要在安卓系统中安装 frida-server,可以看到这里有很多版本

我们要选择与我们刚才在 windows 下 pip 安装的 frida 相对应的版本进行安装,同时还要看你所使用的安卓系统的架构,比如我安装的 frida 是 15.2.2 版本的,而且我用的安卓系统是 64 位的,那我就选择 frida-server-15.2.2-android-x86_64.xz,然后我们就要把它安装进安卓系统中

# 连接安卓系统

连接安卓系统需要用到 adb 指令,下载解压之后将其路径添加到环境变量中就可以使用了,然后打开 cmd,输入下面的命令进行传输

1
adb push (frida-server在windows中的路径) /data/local/tmp(这个是安卓系统的目标路径)

输入完之后可能要等个一两分钟才传输完成,完成之后就可以进行连接了,我用的安卓系统是 mumu 模拟器的,可以在模拟器里面看自己的地址,输入以下命令连接

1
adb connect 127.0.0.1:7555

连接成功

然后通过以下命令进入 frida-server 所在目录

1
2
3
adb shell
su
cd /data/local/tmp

先给文件权限

1
chmod 777 frida-server-15.2.2(文件名)

再打开

1
./frida-server-15.2.2

然后我们再打开一个新的 cmd 输入

1
frida-ps -U

以此来确认该程序有没有打开成功

这就说明打开成功了

# 第三步,脚本脱壳

在安卓端打开 frida-server 之后,我们再在安卓端把要脱壳的程序给打开,就可以在 windows 下进行脱壳了,我们在刚刚下好的 frida-dexdump 目录下打开 cmd,输入下面的命令

1
frida-dexdump -FU

然后在此目录下会出现一个跟被脱壳程序同名的文件,里面有两个

把第一个文件拿到 jeb 中打开,可以直接看到 flag

得到 flag {borring_things}