AVMDBG:Android动态调试新工具详解与JDWP协议实践
42 浏览量
更新于2024-07-15
收藏 1.34MB PDF 举报
本文深入探讨了Android虚拟机调试器的原理与实现,特别是针对动态调试的技术细节。首先,文章回顾了Android动态调试的几种常见方法,包括:
1. **Smali插桩大法**:通过反编译APK并在关键位置插入smali代码来实现调试,这种方法虽然直观,但操作繁琐,且存在解包困难和APK保护问题。
2. **IDA Pro的动态调试**:自6.6版本起支持DEX文件调试,但功能不全面,需要手动添加寄存器监视点,并需注意类型变化可能导致虚拟机崩溃。
3. **JEB动态调试**:强大的商业化工具,支持smali和native代码调试,但在价格上是个劣势。
4. **andbug开源项目**:虽有Linux支持,但原作者已停止维护,功能有限,且存在bug和交互不便的问题。anbc对其进行了一些改进,增加了函数调用监控功能。
5. **Android Studio + Smalidea插件**:IDE插件形式支持smali调试,但存在跳行bug,是开源项目,作者还有baksmali等知名工具。
6. **Xposed Hook框架**:通过Hook函数入口和出口进行调试,但无法深入函数内部。
本文的核心内容围绕着Android虚拟机调试协议JDWP(Java Debug Wire Protocol),涵盖了如何设置任意位置断点、查看堆栈信息以及获取变量值等基础调试功能。特别介绍了一款名为AVMDBG的新动态调试工具,它提供了调试API接口,允许用户使用Python脚本进行扩展,但作为实验项目,其功能可能不够完善,仅作为参考之用,鼓励开发者反馈bug和建议。
本文旨在为Android开发者提供一套全面的动态调试指南,帮助他们理解和优化调试流程,同时展示了技术研究过程中不断迭代和完善的过程。对于那些希望深入了解Android动态调试背后的原理和技术实践的读者来说,这是一篇不可多得的资源。
2022-08-08 上传
点击了解资源详情
点击了解资源详情
2014-08-21 上传
2019-04-26 上传
2018-03-14 上传
2019-10-26 上传
2009-04-28 上传
2011-12-09 上传
weixin_38730821
- 粉丝: 7
- 资源: 931
最新资源
- 与flash有关的资料
- vxwork 串口程序实例!
- 用89C5 1单片机制作的简易定时器
- 2009嵌入式系统设计师考试大纲
- rsgrgerwsgergergerg
- 开发XFire Web Service应用
- IPV4与IPV6的比较
- 整合Flex和Java--配置篇
- 思科认证CCNA考试实验常用的命令总结
- symbian 应用程序开发之SymbianCppForMobilePhonesV3.pdf
- Diameter协议-rfc3588
- ireport图文教程.doc
- radius协议-rfc2865
- SQL2000自动备份 压缩 删除(备份文件)
- JavaScript事件和对象
- 怎样用单片机控制直流电动机