前言
web端爬虫,可以通过js debug机制断点调试。而做为更加热门的android如何完成呢?
获取apk及源码
- 通过手机下载对应apk
- 使用adb pull 命令取出《使用adb命令取出手机中的apk》
- 将apk后缀改成zip,或者rar.解压得到dex文件
- 通过dex2jar工具将dex转换成jar文件《apktool、dex2jar、jd-gui的区别及详解》
- 最后能过jd-gui反编译,阅读源码
- 如果觉的4,5步骤太麻烦,可以直接《jadx》直接翻译dex
frida hook
有时候简单的通过阅读源码不能有效的解决问题,需要运行时数据辅助。frida通过插桩技术帮我们完成,其步骤
frida 脱壳
有些app有通过加壳的方式让保护源读《App解固脱壳方式》,加壳方法有多种,我们可以利用frida方式进行脱壳
- 在《IDA官网》获取IDA,然后《IDA静态分析so文件》方式找到android中openMemery加载class的标识
- 按《用Frida对APP脱壳》步骤获取源码
xpose hook
使用以述办法,获取源码。通过frida找到露洞后. 总要和java通讯的吧。一般使用 NPS+frida/NPS + NanoHTTP。相比于frida借助于adb, xpose + NanoHTTP 更舒服
- 去下载《MUMU模拟器》要之前的版本,当前版本都是x64的。老点的会自动更新成x86
- 按照《xposed开发入门向之入门前准备工作 模拟器安装xposed框架》去下载对应的zip
- 按2步骤做完,可能不会有对应的install按钮,请按下图勾选
- 接入 Sekiro 替换 NanoHTTP的理由《APP长连接通讯Sekiro》
- 《Sekiro简介》