mumu模拟器下adb调试apk文件
0x01 adb连接mumu模拟器
不知道为什么我去官方下的adb总是连接不上设备,搜索后发现mumu模拟器之类的模拟器都有自带adb程序,于是直接在mumu模拟器的文件下面打开cmd终端,然后adb 直接连接
1 | adb connect 172.0.0.1:16384 |
16384是我的mumu模拟器的端口,这个端口可以通过下图方式查询
连接成功后出现下面提示
0x02 ctf下的apk调试
这里是为了做一道xyctf 的题目,题目提示说,只要开启了debug,就能得到flag。
首先,安卓设备要开启开发者模式的调试功能,被调试的app在manifest文件里开启debuggable = “ture”
这里我用jadx反编译后,在这个application下手动添加一个android:debuggable = “true”,这里我已经事先添加过了,还是带着看一遍如何添加。
jadx里没法修改反编译后的文件,我们将文件安装到mumu模拟器,然后在商店下载一个MT文件管理器。
打开后点击左上角三横线找到安装包提取
然后点击这个路径直接找到apk文件,点击apk->查看->AndroidManifest.xml,反编译模式打开,然后在如上图的application选项下,把调试选项手打进去
1 | android:debuggable="true" |
改好后关闭文件,如果出现权限不够的报错,试着把apk文件移动到其他文件夹(跟着报错的提示走就好了)
最后记得把修改后的apk文件覆盖掉电脑上原来的那个apk文件,我通过mumu 的共享文件夹可以把模拟器里面修改后的apk移动到电脑上。
0x03 终端jeb调试
1 | abd shell am start -D -n 包名/需要调试的进程名 |
在终端输入上述命令可以启动调试,然后模拟器上就会waiting for debugger,这时候在windows上用jeb打开apk,然后在mainactivity里面调试(这个方法是朋友试的)
0x04 jadx直接启动调试
jadx调试时看不到正在指向的调试的指令(我也不知道为什么,等大神解答),但是能很方便的启动调试程序,直接在mumu模拟器打开app,然后jadx直接启动调试
双击红色框里面的app 的包名就能启动调试了,这时候在模拟器的app里就能检测到调试爆出flag。