ddms工具使用以及案例

article/2025/10/14 0:19:51

ddms工具使用以及案例

ddms的主要用途,就是查看app的各种输出,尤其是日志的输出方法剖析

工具准备

环境配置连接:https://blog.csdn.net/tianyi19/article/details/115335951
用到的apk

链接:https://pan.baidu.com/s/1rAONbtafSYos-IKHddQw2w 
提取码:emrc

启动ddms

ddms是在sdk中的,一般情况下我们已经将platform-toolstools目录添加到环境变量
所以只需要在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中看一下,通过插桩来验证一下逻辑是否正确
在这里插入图片描述
点击立即登录按钮,触发日志,可以确定,位置没找错


http://chatgpt.dhexx.cn/article/1CyW1kPp.shtml

相关文章

DDMS工具的使用

1、DDMS工作原理 DDMS是IDE与测试终端的桥梁,它实时监测到测试终端的连接情况,当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。 2、DDMS主要作用 1&#xff0…

DDMS全解

DDMS 的全称是 Dalvik Debug Monitor Service, 它为我们提供例如:为测试设备截屏、针对特定的进程查看正在运行的线程以及堆信息、Logcat、 广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。 一、如何启动 DDMS DDMS 工具存放在 SDK 的 tools 路…

Android开发调试必备 - DDMS

一、真机调试的两个必备条件 (1)手机打开开发者模式并且运行USB调试 (2)PC上装好手机对应的驱动(现在的安卓手机连接电脑一般都需要安装驱动,让电脑能够驱动安卓手机) 二、DDMS(DalvikDebugMonitorServer)四个主要窗口 Devices&#xff1a…

旧版Xcode8.3.3.xip解压时提示『归档不是来自Apple』填坑

百度结果 几乎全是: 1.保证存储空间 20G 2.去除解压验证 xattr -d com.apple.quarantine Xcode_8_beta.xip 3.双击解压 然而试了并不行,因为验证早已经关了。 最后解决是: 证书过期,把系统日期改为前几年解决问题。

apple Xcode xip安装

1.保证存储空间 20G 2.去除解压验证 xattr -d com.apple.quarantine Xcode_8_beta.xip 3.双击解压 压缩后,打本地目录,双击。开始安装。

Mac实用小技巧之解压(.xip)文件

Mac下解压(.xip)文件 在安装Xcode的时候,我从官网下载了一个Xcode的安装文件,但是这个文件是(.xip)压缩文件,我使用了很多解压软件,都没有解压成功,最后上网查看,大家推荐了一种方法 “通用”里有时没有“任…

安装Xcode的xip安装包的一些注意事项

需求场景 需要同时安装多个 Xcode 时需要安装较老版本 Xcode 时 下载地址 https://developer.apple.com/download/more/ 注意事项 1. 安全性 打来安全和隐私中的任何来源 高版本系统没有显示的情况下,可以终端输入:sudo spctl --master-disable 2. 去除解压验证…

ARM Linux 的XIP还是挺好用的

MergeFile下载(微软SkyDrive):http://cid-a0a942ebd8c6c3b5.office.live.com/self.aspx/.Documents/MergeFiles.rar 一般来说,现在的ARM Linux嵌入式系统都是将Image拷贝到SDRAM中进行运行的标准方式,尤其是像S3C6410和…

macOS Mojave 解压xip失败的问题

写这个博客主要是记录最近更新 macOS 10.14 和升级了Xcode10后要重新下载一个旧版的Xcode所踩的坑。 1、首先要打开通用的任何来源这个选项: 发现提示“xxxxxx 已损坏,打不开。” (很多破解版的软件安装不成功就是这个问题) 是因为macOS Sier…

ESP32系列--存储器类型和XIP特性

一、目的 当我们通过ESP-IDF开发ESP32时,可能会遇到类似这样的场景需要对某个函数的执行速度进行优化例如中断执行函数需要快入快出,那么应该怎么做呢,ESP-IDF里面有没有提供这样的方法或者机制呢? 按照常识我们总认为内部SRAM的读…

Raspberry Pi Pico SDK开发-Flash-XIP

Flash-XIP RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (PIO)。 本实例将演示如何使用Flash。 1、Flash-XIP介绍 RP2040使用就地执行 (execute-in-…

Nor Flash芯片内执行(XIP)

前言:这个所谓的芯片内执行(XIP)对于我这种一根筋的人是很难理解的,一直总觉得CPU是只能在RAM中运行程序,为毛能够在Nor Flash中执行程序呢,这里面就有个概念容易混淆,也可能是翻译理解的问题。…

芯片的XIP与BootRom启动方式

XIP:execute in place,就地执行,即芯片内执行,指应用程序可以直接在flash闪存中取指然后译码、执行,不必再把代码读到系统RAM中,flash内执行时指Nor flash不需要初始化,可以直接在flash内执行代…

STM32CubeIDE XiP 和 BootROM介绍, XiP外部内存QSPI FLASH执行用户代码

随言: 目前的电子产品功能越来越多,随之而来的就是代码越来越庞大,代码所需要的存放空间也越来越大。 比如:用ST做GUI界面,面临最大的问题就是芯片内部flash最大才2M。在现在这个时代,2M其实也放不了几张…

mac实用小技巧之解压.xip文件

Mac下解压(.xip)文件 在安装Xcode的时候,我从官网下载了一个Xcode的安装文件,但是这个文件是(.xip)压缩文件,我使用了很多解压软件,都没有解压成功,最后上网查看,大家推荐了一种方法 “通用”里有时没有“…

XIP技术介绍

转载:https://blog.csdn.net/wk_kuan/article/details/39692371 1:简介 XIP,executed in place,本地执行。操作系统采用这种系统,可以不用将内核或执行代码拷贝到内存,而直接在代码的存储空间直接运行。采…

XIP技术

转自https://blog.csdn.net/amberman/article/details/8122300 侵删 首先认识下nandflash和norflash: NOR Flash 和 NAND Flash 是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Electrically Pr…

XIP技术总结

1.XIP eXecute In Place XIP即芯片内执行,指应用程序可以在flash闪存内运行,不必再把代码读到系统RAM中。需要注意的是,片内执行不是说程序直接在flash内执行,CPU的基本功能就是取指、译码和执行。norflash能在芯片内执行&#x…

XIP简介

1、XIP是什么? XIP(executed in place)本地执行。操作系统采用这种系统,可以不用将内核或执行代码拷贝到内存,而直接在代码的存储空间直接运行。 XIP是一种能够直接在闪速存储器中执行代码而无须装载到RAM中执行的机…

XIP(eXecute In Place)

XIP(eXecute In Place) 1.什么是XIP ​ eXecute In Place,即芯片内执行、就地执行,是指CPU直接从存储器中读取程序代码执行,而不用再读到内存中。应用程序可以直接在flash闪存内运行,不必再把代码读到系统…