今天遇到一个加了壳的安卓题,[网鼎杯 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 | adb shell |
先给文件权限
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}