美文网首页安卓开发
使用Android studio单步调试xposed插件

使用Android studio单步调试xposed插件

作者: smartdone | 来源:发表于2018-04-27 23:08 被阅读297次

    0x00 为什么需要单步调试?

    在写程序中很有可能会遇到,感觉自己写的很OK,但系,怎么都得不到正确的运行结果。最后看了无数次代码才发现自己某些代码写了一点点小错误。单步调试这个东西,可以快速帮我们找到bug,提升效率。

    那么,对于xposed插件这种东西,他运行在别人的进程里面,也可以动态调试吗?答案是肯定的,当然可以动态调试啊。

    0x01 准备一个测试app

    写一个简单的app,弄一个输入框,输入helloworld就提示成功,否则提示失败。代码很简单,如下:

    app核心代码

    0x02 编写xposed插件

    插件写起来很简单,就是hook住check方法,然后打印一个log,再返回结果为true。代码如下:

    xposed插件代码

    0x03 动态调试

    Xposed插件的handleLoadPackage方法是在app启动的时候执行的,所以如果你要在这个方法下断点,应该需要debug模式来启动。而new XC_MethodHook()所写的代码在每次函数调用前后都会触发,这也是我们写的xposed插件代码核心的位置,也是大部分时候我们所需要去调试的地方。调试方法如下:

    下面步骤中xposed插件都统称“插件”,需要被hook的应用都统称“目标应用”

    1. 安装插件并重启

    2. 启动目标应用

    3. 在Android studio中下好断点

    设置断点

    4. 点击`Attach debugger to Android process`,然后勾选`Show all process`,选择目标应用,点击ok

    选择调试进程

    5. 在目标应用中做相应操作,触发需要hook的函数,执行到断点的时候就会断下来

    调试界面

    0x04 总结

    没啥需要总结的,调试xposed插件挺简单的,不过还是摆脱不了重启。用这个来找xposed插件的bug还是挺不错的。

    相关文章

      网友评论

      本文标题:使用Android studio单步调试xposed插件

      本文链接:https://www.haomeiwen.com/subject/kvispxtx.html