Android动态调试
本文最后更新于:2020年3月11日 晚上
Android动态调试支持
- dalvik实现了JDWP(Java Debug wire Protocol,Java调试有线协议),可直接使用支持此协议的调试器来调试Android程序。
- dalvik为JDWP的实现加入了DDM(Dalvik Debug Monitor,Dalvik调试监视器)。具体的实现有DDMS(Dalvik Debug Monitor Server,调试监视器服务)和Eclipse ADT插件。
- 系统属性ro.debuggable为1时所有程序都会开启调试(adb shell getprop ro.debuggable检查),若为0,则会判断AndroidManifest.xml中的debuggable属性。
DDMS的使用
Logcat、文件浏览、Method Profiling等。
Logcat视图相当于adb logcat -s com.droider.jnimethods:V
1 |
|
定位关键代码
代码注入法
通过Log输出定位关键代码,甚至破解程序。
栈跟踪法
1 |
|
栈跟踪信息是WARN级别的log
Method Profiling
相当于Ollydbg的trace功能,跟踪信息。
通过方法设置跟踪的开始和停止:
smali代码如下:
此方法会在文件下生成trace文件,可以使用SDK目录下的traceview工具打开,使用此方法还需要有SD卡写入权限。
IDA调试原生程序
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!