安卓动态调试方法总结
来源:互联网 发布:斯蒂芬库里 知乎 编辑:程序博客网 时间:2024/05/17 21:52
1、修改apk配置文件AndroidManifest.xml
修改配置文件<application>子项,添加 android:debuggable="true" 属性,使apk处于可调式状态,打包回编即可。
<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name">
2、调试启动apk(两种方式)
1)使用adb shell am(没用过)
使用格式为 【adb shell am start -D -n 包名/包名+类名】的命令,就可以从控制台启动一个Activity
该命令的具体用法,参见 adb shell am
2) 使用手机自带的调试功能(简单方便)
在手机中的开发者选项中,选择待调试的程序,然后正常单击程序,此时会弹出一个title为“Waiting For Debugger”的对话框,提示用户该应用程序正在等待debugger attach
3、IDA附加app
在手机中以root身份启动android_server
在主系统中,使用adb forward tcp:23946 tcp:23946 命令转发端口数据
完成以上两步后,就可以使用ida附加到应用程序。附加完成后,在ida->Debugger->Debugger Options中,设置event断点,添加 library load/unload 断点,,这样,在app启动之后,每load/unload一个so的时候,都会断住,此时,用户就可以去设置断点,一遍后续调试
4、启动app
经过以上三步,app处于待调试状态,此时需要启动app,让它跑起来。
在主系统中,使用ddms查看app的调试端口号(一般为8700),然后使用如下命令:
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
此时,app调试状态解除,开始正常运行。
但是你会发现,“Waiting For Debugger”对话框不见了,但是app还是没有运行,这是因为在ida附加的时候,自动断住了。只要在ida中,按下F9,就可以让app真正的跑起来了。
修改配置文件<application>子项,添加 android:debuggable="true" 属性,使apk处于可调式状态,打包回编即可。
<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name">
2、调试启动apk(两种方式)
1)使用adb shell am(没用过)
使用格式为 【adb shell am start -D -n 包名/包名+类名】的命令,就可以从控制台启动一个Activity
该命令的具体用法,参见 adb shell am
2) 使用手机自带的调试功能(简单方便)
在手机中的开发者选项中,选择待调试的程序,然后正常单击程序,此时会弹出一个title为“Waiting For Debugger”的对话框,提示用户该应用程序正在等待debugger attach
3、IDA附加app
在手机中以root身份启动android_server
在主系统中,使用adb forward tcp:23946 tcp:23946 命令转发端口数据
完成以上两步后,就可以使用ida附加到应用程序。附加完成后,在ida->Debugger->Debugger Options中,设置event断点,添加 library load/unload 断点,,这样,在app启动之后,每load/unload一个so的时候,都会断住,此时,用户就可以去设置断点,一遍后续调试
4、启动app
经过以上三步,app处于待调试状态,此时需要启动app,让它跑起来。
在主系统中,使用ddms查看app的调试端口号(一般为8700),然后使用如下命令:
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
此时,app调试状态解除,开始正常运行。
但是你会发现,“Waiting For Debugger”对话框不见了,但是app还是没有运行,这是因为在ida附加的时候,自动断住了。只要在ida中,按下F9,就可以让app真正的跑起来了。
1 0
- 安卓动态调试方法总结
- 安卓动态调试
- 安卓动态调试武器
- 安卓APP动态调试
- 安卓APP动态调试技术
- 安卓APP动态调试技术
- 安卓动态调试,Java语言
- 安卓逆向学习(1):so文件的动态调试方法
- 安卓 异步方法总结
- 安卓开发adb联机调试方法
- 安卓APP动态调试-IDA实用攻略
- 安卓APP动态调试-IDA实用攻略
- 安卓APP动态调试-IDA实用攻略
- 【安卓逆向】如何用ida动态调试so文件
- 安卓隐藏键盘方法总结
- 安卓显示键盘方法总结
- 安卓常用方法和布局总结
- 规避安卓4.0调试白名单的方法
- 初识openstack
- Java equals方法
- js计算器
- visudo 配置
- BZOJ 3931 CQOI 2015 网络吞吐量 最大流 最短路
- 安卓动态调试方法总结
- 堆
- php之函数
- Array.from()
- 三种纯css方法实现等高列
- js表单验证
- 2016年4月6日工作总结
- android studio 创建安卓项目时 报R文件找不到错误 可能源于布局xml文件包含错误
- 25.异常处理