安卓逆向-动态调试
1.ADB
Android SDK工具
platform-tools加入环境变量
打开虚拟机就连接了
adb devices,查当前连接的设备
adb install 电脑路径,安装APK
adb shell,进入终端,linux命令
exit,退出终端
adb shell pm list packages,列出所有已安装的包名
adb shell dumpsys activity top,获取当前活动界面信息,有包名
adb shell dumpsys package 包名如com.xxx.xxx,获取包信息
adb shell pm path 包名,获取程序路径
adb shell dumpsys meminfo 包名,获取内存数据
adb shell dumpsys dbinfo 包名,获取数据库文件
2.Monitor
Android SDK工具,tools/monitor.bat
连上ADB后打开即可,监控APP的日志信息,调用了哪些函数等
3.IDA
逆向工具(ARM指令集)
动态调试:
真实机(虚拟机容易崩)->设置->开启开发者选项->开启USB调试
adb shell getprop ro.product.cpu.abi,查手机位数
根据位数放入android_server64或android_server(如果是虚拟机放android_x64_server或android_x86_server)
adb push "D:\GJ\IDA 7.0\dbgsrv\android_server64" /data/local/tmp
adb shell先自己想办法拿到root权限
赋权->执行->端口转发到电脑
adb shell
cd /data/local/tmp
chmod +x android_server64
./android_server64
adb forward tcp:23946 tcp:23946
IDA->Debugger->Attach->Remote ARM...(如果是虚拟机选Linux)->127.0.0.1:23946,Save->根据包名打开
Debugger->Debugger windows->Module list->找到对应函数,下断点调试