发新帖

Android逆向系列之动态调试(二)–Eclipse调试apk

[复制链接]
315 0

一、反编译APK

这里反编译的时候要记得带上 -d参数,以便动态调试 apktool d -d demo.apk

二、添加属性

在AndroidManifest.xml的application添加属性:android:debuggable=”true”

2

三、添加调试语句

在主Activity的OnCreate函数下一行添加: a=0;// invoke-static {},Landroid/os/Debug;->waitForDebugger()V

四、重新打包

重新打包生成apk并签名(需卸载原来的apk) apktool b -d out -o 3.apk (或apktool b -d out) 安装后打开apk,发现是空白,这里是进入了调试状态,并不是出现错误

五、打开eclipse

打开eclipse–>新建java project(第一次打开在project中找)–>更改默认路径为 out目录–>选择smali–>finished

3

六、设置断点

设置断点(可在OnCreate函数或OnClick函数等的下一语句下断点),这里需要首先分析源代码,找出自己想要下断点的地方,快捷键Ctrl+shift+B

七、设置调试端口

设置调试端口(可用DDMS查看端口),run-debug configuration->remote debug application–>可右键新建或者用原来的mainactivity,设置端口号–>点击Apply–>debug

问题分析:如果出现 Failed to connect to remote VM. Connection refused. Connection refused: connect 解决方法:尝试在模拟器中kill 调试apk的进程,然后重新打开,重新打开ddms,然后填写对应端口号,这里的ddms不允许关闭。

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表