题目源于【网鼎杯2020青龙组 bang】,主要考点为apk脱壳,题目使用梆梆安全加固

记录一下如何使用ApkShelling脱壳

安卓模拟器

我这里使用地是Android Studio创建安卓模拟器,当然你也可以直接下一个拥有root权限的安卓模拟器

镜像要求:

  • Android 8.0(包含8.0)以下的镜像
  • 镜像Google APIs
  • ABI为x86架构

使用可写权限启动模拟器

以后想要root的话也需要这样打开

1
2
3
cd xxx/android-sdk/tools
emulator -list-avds
emulator -avd Pixel_2_API_24 -writable-system

安装SuperSU

SuperSU下载地址:https://supersuroot.org/download/

1
2
cd xxx/android-sdk/platform-tools
adb install supersu-2-82.apk

安装Xposed

Xposed下载地址:https://repo.xposed.info/module/de.robv.android.xposed.installer

1
2
cd xxx/android-sdk/platform-tools
adb install XposedInstaller_3.1.5.apk

Root模拟器

1
2
3
4
5
6
cd xxx/android-sdk/platform-tools
adb root
adb remount
adb shell
setenforce 0
exit

上传配置文件

SupoerSu.zip下载地址:https://download.chainfire.eu/1220/SuperSU

SuperSu/x86/su.pie上传到模拟器

1
2
adb push su.pie /system/bin/su
adb push su.pie /system/xbin/su

进入adb shell修改文件权限

1
2
3
4
5
adb shell
chmod 0755 /system/bin/su
chmod 0755 /system/xbin/su
su --install
su --daemon&

在模拟器上分别打开SuperSU和Xposed Installer进行安装

安装SuperSU时不要选择更新,不然会卡死在开机页面,需要重新root

安装Xposed Installer后授权重启即可

关闭模拟器时直接x掉就好,千万不要选power off,不然需要重新root

重启使用adb reboot

安装ApkShelling

AplShelling下载地址:https://github.com/OakChen/ApkShelling

Android Studio打开ApkShelling,修改XposedEntry.java的targetPackages值,加入需要脱壳的包名

1
2
private static final String[] targetPackages =
new String[]{"com.example.how_debug", "com.sfysoft.shellingtest2"};

launch option改为nothing

安装完后重启,然后上传题目的apk,再拉取题目的dex

1
2
adb shell ls /data/data/com.example.how_debug
adb pull /data/data/com.example.how_debug/00125-02.dex ./

jadx直接打开dex搜索flag

image-20210320174944804

参考

Reverse 解法2:bang Writeup(安卓简单的加壳)(2020网鼎杯青龙组)

搞机:AS自带模拟器AVD Root 和 Xposed安装