ddms工具使用以及案例
ddms工具使用以及案例
ddms的主要用途,就是查看app的各种输出,尤其是日志的输出和方法剖析
工具准备
环境配置连接:https://blog.csdn.net/tianyi19/article/details/115335951
用到的apk
链接:https://pan.baidu.com/s/1rAONbtafSYos-IKHddQw2w
提取码:emrc
启动ddms
ddms是在sdk中的,一般情况下我们已经将platform-tools和tools目录添加到环境变量
所以只需要在cmd中输入ddms即可

等待启动,启动完成界面如下
空空如也

我们来启动一个模拟器试试,看看ddms有什么变化

车x了去广告
先看第一个例子,现在app为了盈利,很多时候都会加入广告,但是好烦人的,怎么去掉呢?
车x了广告如下

查看ddms输出
模拟器上app打开,观察ddms输出

添加过滤器
但是你发现好多输出啊,不知道哪个是车x了的输出,怎么搞?
添加过滤器,只看车x了的输出

点击车x了过滤器,这样我们看到的,就只有车x了的输出了

发现广告
清空日志,重新打开app,观察输出
你发现了关键字,广告!!!

这说明啥,但是这个到底是不是车x了首页的广告呢?其实我也不知道,毕竟逆向就是这,一半是基础,一半是靠蒙
提取一下url
右击日志->filter similar messages

弹出框选择关键链接,因为后面的可能都是参数

替换广告链接
然后该怎么做呢?将所有这个链接换成127.0.0.1试一下,假装还是正常访问,不过已经失效了
换成127.0.0.1表示这还是个正常的链接,只不过是无响应而已,如果换成空字符串或者其他,可能就不是无响应,直接是大异常,app可能会直接崩溃

替换完成, 重新回编译
再次安装app,然后运行,观察ddms,发现无法读取url,失效了!
并且app也没广告了

好x小说插桩和栈跟踪
什么是插桩
插桩本质就是Java的输出日志,
但是我们都知道,向jadx-gui等反编译工具,虽然可以将apk逆向成Java代码
但是那都是伪Java代码,是根据smail翻译过来的,并且伪Java代码是不能修改的
但是smail是可以修改的
所以插桩就是用smial来完成log输出,来验证自己的猜想知否正确
开始插桩
必须使用上述链接配置的AK(Android Killer)和jadx-gui
apk拖入AK中,找到入口函数,也就是onCreate方法

在.prologue代码之后,进行插桩
如果是安装上述链接配置的AK,右击会有插入代码->Log信息输出
插入位置图如图所示

其实就是这两行,调用了Log而已

插桩内容尽量只能是英文或者中文转unicode码,可以利用AK快速完成转换
回编译在jadx中看看Java代码,插桩其实就是log而已

保存,回编译,安装到模拟器
在ddms中添加一个过滤器,就可以看到自己插入的日志了

可能出现的问题
插桩是会失败的
比如,寄存器位0个

如果.locals为0,把.locals改为1即可,或者更多
方法栈跟踪
栈跟踪和插桩类似,插桩的本质是log,栈跟踪的本质就是报异常
都知道,不管是什么语言,报异常的时候,都会有引发一系列提示,最终定位到某一个自己代码触发的异常
所以栈跟踪理论来说可以更好的理清逻辑
插入栈跟踪
在入口函数插入栈跟踪,不过这次不是在onCreate,在loadData函数下插入

本质就是这几行代码,触发异常

回编译一下,在jadx中看一下

如果栈跟踪能触发,那就说明执行流程应该是onCreate()->loadData()->栈跟踪信息
真的是这样子吗?
ddms中看一下吧
Tag为System.err的就是栈信息,如果没有,可能需要卸载重装

确实如此,不过逻辑是从下往上看的,跟jadx图调用关系一样
方法剖析
还是好x小说这个app,我们打开登录这个页面
在我的里面

我点击了这个立即登录,究竟触发了哪些方法呢?

注意:玩方法剖析手要快!,因为打印的东西太多

点击ok后,去模拟器点击登录

然后还是去点击刚才那个按钮
然后等一会会自动弹出一个东西,如图所示

可以发现就那一会,就有2800个方法,所以一定快

还是上述的操作,再来一遍,发现有132个,所以操作一定要快

ps:子节点(Children)就是将要去调用的节点
点击登录触发的是onclick方法,搜索一下

一般也是从下往上找
根据分析,点击立即登录按钮,应该触发的是这个类的onClick

但是到底点击登录触发的是不是这个类呢?
在jadx中找一下这个类

在AK中这个位置插桩

回编译app,在ddms中看一下,通过插桩来验证一下逻辑是否正确

点击立即登录按钮,触发日志,可以确定,位置没找错
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)