安卓软件动态调试

admin 2023年2月13日03:47:46评论12 views字数 1225阅读4分5秒阅读模式

首先需要终端安装adb等工具,在mac下可以直接使用brew(或者下载编译好的文件,再添加PATH即可)

brew install android-platform-tools

windows系统的话可以直接下载二进制文件再添加环境变量即可

然后安装模拟器,我这里使用的是MuMu模拟器,打开模拟器之后进入设置

安卓软件动态调试

启用开发者选项

安卓软件动态调试

启用USB调试

安卓软件动态调试

然后我们就可以使用adb连接了,windows端口号是7555,macOS下端口号是22471

安卓软件动态调试

使用adb connect IP:PORT即可连接

adb devices可以查看连接设备

安卓软件动态调试

安装apk. adb install ./xx.apk

卸载apk. adb uninstall ./xx.apk

从电脑上传文件至模拟器 adb push ./xxx /tmp

从模拟器复制文件至电脑 adb pull /tmp/xxx ./

首先这里有个坑是emulator-5554这个设备,导致adb认为是个模拟器,导致插入安卓设备的时候,执行命令经常遇到 more than one devices错误,这个时候使用netstat -an|grep 5555 (linux或者macos) 然后输入lsof -i tcp:port,port即为端口号,找到应用,windows使用netstat -ano|findstr "5555"对应程序然后kill掉(类unix系统直接kill -9 xx即可,windows直接用任务管理器方便(task list --> kill ))

安卓软件动态调试

这时候就正常了

安卓软件动态调试

然后这里又遇到问题,设备离线

这时候重启大法吧

adb kill-server adb start-server adb remount

然后就可以连接上了(adb -s 设备 shell)

安卓软件动态调试

因为有点坑我这模拟器是x86架构的,不是arm,所以会导致一些程序出现兼容性问题,建议使用qemu去模拟(或者买个二手root过的手机,调试方便,因为要用到root权限去attach进程)

好的接下来就是pull一个dbgsrv和安装apk文件了,首先打开ida根目录下的dbgsrv文件夹,里面包含不同构架和平台的server文件

这里因为我是x86_64所以上传的android_x64_server

安卓软件动态调试

/data/local/tmp是可读可写权限的

然后启动程序

安卓软件动态调试

这时候模拟器监听在了23946端口上,为了不每次都去查看模拟器的端口,我们可以开启端口转发,这样我们每次只需要连接127.0.0.1的端口上就行了

安卓软件动态调试

然后安装apk文件,我找x86的软件找了好久,真的少,作为测试这里使用

安卓软件动态调试

然后使用adb install xxx.apk安装(其实我双击想解压的时候自己安装上了),然后本地解压apk

安卓软件动态调试

然后随便找个二进制文件,我这里找了个动态连接库

安卓软件动态调试

放入ida64。随便找个函数下个断点

安卓软件动态调试

找到debugger

安卓软件动态调试

安卓软件动态调试

然后设置一下ip和端口

安卓软件动态调试

然后选择attach

安卓软件动态调试

就会出现进程列表了

安卓软件动态调试

然后我们找到相应程序名字即可动态调试了

原文始发于微信公众号(由由学习吧):安卓软件动态调试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月13日03:47:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓软件动态调试http://cn-sec.com/archives/1550268.html

发表评论

匿名网友 填写信息