-
-
[原创]IDA动态调试Android应用
-
2022-11-10 16:10
22592
-
这里使用的MAC系统,当然windows、Linux也是一样的,具体问题具体分析吧。
把ida中的android_server复制到手机 启动 Android server
- 上传IDA调试服务器地址:IDAPro70\dbgsrv\android_server
- cmd进入到该目录下: IDAPro70\dbgsrv
- 导入IDA调试服务器:adb push android_server /data/local/tmp
- adb shell 以su启动(手机要求root)
- cd到/data/local/tmp下:chmod 777 android_server
- ./android_server(如果失败重启手机)
这里启动之后 可以看到IDA Android 32-bit remote debug server(ST) v1.22. Hex-Rays (c) 2004-2017 注意:这里32-bit的话,你打开IDA就用32位的打开 不然就是64位的
设置ro.debuggable为1
1.使用mprop
1 2 3 4 5 | adb push xxx / mprop / data / local / tmp / mprop
adb shell
su
chmod 755 / data / local / tmp / mprop
data / local / tmp / mprop setprop ro.debuggable 1 / data / local / tmp / mprop - r
|
2.在 Magisk 中安装下载的 MagiskHidePropsConfig 模块并开启
检查 getprop ro.debuggable 是否开启。 1 开启
转发ida端口 开启adb应用调试
1 | adb forward tcp: 23946 tcp: 23946 adb shell am start - D - n 包名 / 包名对应启动Activity
|
里转发了之后可以使用lsof -i:23946来查看如果有Listen则说明转发成功 接着调用adb 调试命令 填好对应包名和启动的Activity注入调试
ida attach到应用进程 打断点
打开IDA设置好process options 地址127.0.0.1 端口23946 Ida -》debugger -》attach process 选择对应应用进程 选择libdvm.so 找到dvmDexFileOpenPartial 计算偏移量
动态调试步骤总结:
1.安卓APK ,注意手机的安卓版本,高版本系统默64位的,如果你用32位的调试,肯定就不行了。
1 2 3 | adb install - - abi armeabi - v7a 七xxx小说.apk
adb install - - abi arm64 - v8a <path to apk> 运行 64 位的
|
2.开启 Android_server
adb shell -> tmp-> ./android_server
3.开启本地转发端口:
1 | adb forward tcp: 23946 tcp: 23946
|
4.打开apk 找到包名和启动的页面 :
1 | adb shell dumpsys window | grep mCurrentFocus
|
5.开启apk 调试 附加模式 :
1 | :adb shell am start - D - n com.kmxs.reader / com.kmxs.reader.home.ui.HomeActivity
|
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界
最后于 2024-1-15 14:42
被西贝巴巴编辑
,原因: 增加第二种修改 getprop ro.debuggable方法