这篇文章的内容记录下我在各个文章搜索学习最后解决了安卓进行模拟器动态调试的方法。
参考的文章有:
ADB:https://blog.csdn.net/Python_0011/article/details/132040387
ADB的使用https://blog.csdn.net/SM1555/article/details/112608576
Androidkiller:https://blog.csdn.net/m0_56471632/article/details/119086354?fromshare=blogdetail&sharetype=blogdetail&sharerId=119086354&sharerefer=PC&sharesource=2403_87413412&sharefrom=from_link
本文的apk逆向文件采用攻防世界中mobile类型题目的Ph0n1x-100这道题目
要进行安卓模拟器的adb进行进行动态调试的话,首先要安装adb这个工具,下载解压后还要把adb.exe文件路径所在的目录配置到环境变量path里面
只要能够进行如下的的操作的话就证明adb配置到系统环境变量path里面了。
这里我看有不少文章说模拟器要连接adb的话要打开网络桥接模式,实际上我在操作的时候发现其实并不需要,就把模拟器进入开发者模式然后开启usb调试就好了,然后查看模拟器的adb调试端口(是什么模拟器就自搜如何查看adb调试端口,一般模拟器的官网都有文档说明的)
然后adb connect 模拟器在电脑上的ip:adb调试端口就可以完成adb连接了。然后安卓软件是否能够进行debug调试其实也要查看一下其中的manifest文件,如果里面的debuggable="true"是这样的,如果是没有写或者是false的话,就得用androidkiller修改里面false或者自己添加一句android:debuggable="true",然后重编译,注意重编译一定要选择可以签名得,否则没有签名得apk是无效apk,无法安卓的,
重编译之后的androidkiller下面有一条路径,这个是重编译后的app所在路径新的apk就是可以进行debug的apk了,这个时候就可以在jeb里面进行apk的调试了。
jeb里面ctrl+B可以设置断点,不过jeb只能在反汇编区域里面设置断点,无法在伪代码区域设置,所以设置断点注意要先切换到反汇编区域里面。
找到对比的关键字符串结合apk里面的so文件在IDA里面的伪代码逻辑(或者是汇编语言的逻辑)然后进行一个解密代码的写
然后就有flag是flag{Ar3_y0u_go1nG_70_scarborough_Fair}的结果了
博主语文不好,文笔敬请见谅。用词不当,还请谅解