- 对本书的赞誉
- 前言
- 基础篇
- 第 1 章 Android 中锁屏密码加密算法分析
- 第 2 章 Android 中 NDK 开发
- 第 3 章 Android 中开发与逆向常用命令总结
- 第 4 章 so 文件格式解析
- 第 5 章 AndroidManifest.xml 文件格式解析
- 第 6 章 resource.arsc 文件格式解析
- 第 7 章 dex 文件格式解析
- 防护篇
- 第 8 章 Android 应用安全防护的基本策略
- 第 9 章 Android 中常用权限分析
- 第 10 章 Android 中的 run-as 命令
- 第 11 章 Android 中的 allowBackup 属性
- 第 12 章 Android 中的签名机制
- 第 13 章 Android 应用加固原理
- 第 14 章 Android 中的 so 加固原理
- 工具篇
- 第 15 章 Android 逆向分析基础
- 第 16 章 反编译神器 apktool 和 Jadx
- 第 17 章 Hook 神器 Xposed
- 第 18 章 脱壳神器 ZjDroid
- 第 19 章 Native 层 Hook 神器 Cydia Substrate
- 操作篇
- 第 20 章 静态方式逆向应用
- 第 21 章 动态调试 smali 源码
- 第 22 章 IDA 工具调试 so 源码
- 第 23 章 逆向加固应用
- 第 24 章 逆向应用经典案例分析
- 第 25 章 Android 中常见漏洞分析
- 第 26 章 文件加密病毒 Wannacry 样本分析
3.2 非 shell 命令
我把常用命令分为非 shell 命令和 shell 命令,当然这样分类有点不合常规。为了好理解,我把需要提前用 adb shell 命令运行的命令叫做 shell 命令,直接用 adb shell 运行的命令叫做非 shell 命令。本节介绍非 shell 命令,下一节介绍 shell 命令。
1.adb shell dumpsys activity top
说明:可以查看当前应用的 activity 信息。
用法:运行需要查看的应用。
案例:
延伸:如果直接运行 adb shell dumpsys 也是可以的,只是会把当前系统中所有应用运行的四大组件都会打印出来,而这时候会发现打印的内容非常多,就需要借助之前说到的信息重定向了,具体做法如下。
这里还借助了 Windows 中的 start 命令,可以直接利用系统默认程序打开文本内容。而且我在以往逆向应用的时候,很多时候都用到这个命令来找到突破口。
2.adb shell dumpsys package
说明:可以查看指定包名应用的详细信息(相当于应用的 AndroidManifest.xml 中的内容)。
用法:adb shell dumpsys package[pkgname]
案例:
这里就是相当于把应用的清单文件打印出来而已。
3.adb shell dumpsys meminfo
说明:可以查看指定进程名或者进程 id 的内存信息。
用法:adb shell dumpsys meminfo[pname/pid]
案例:
利用这个命令可以查看进程当前的内存情况,和后面的 top 命令可以结合使用,分析应用的性能消耗情况。
4.adb shell dumpsys dbinfo
说明:可以查看指定包名应用的数据库存储信息(包括存储的 SQL 语句)。
用法:adb shell dumpsys dbinfo[packagename]
案例:
这里可以清晰地看到应用执行过的 SQL 语句信息,对应用逆向的时候具有一定用途。毕竟可以查看应用操作数据库信息了。
5.adb intall
说明:安装应用包 apk 文件。
用法:adb install[apk 文件]。
案例:
注意:如果应用已经安装了,需要使用 adb install-r[apk 文件],相当于升级安装。这个命令就不多说了,非常简单。
6.adb uninstall
说明:卸载应用。
用法:adb uninstall[packagename]
案例:
和上面的命令类似。
7.adb pull
说明:将设备中的文件放到本地。
用法:adb pull 设备目录文件本地目录。
案例:
注意,在操作的时候可能遇到文件权限问题,用 chmod 改一下权限即可。
8.adb push
说明:将本地文件放到设备中。
用法:adb push 本地目录文件设备目录。
案例:
注意,在操作的时候可能遇到文件权限问题,用 chmod 改一下权限即可。
9.adb shell screencap
说明:截屏操作。
用法:adb shell screencap-p 截图文件路径。
案例:
这个命令对于测试人员非常有用,有时候想快速截取手机屏幕,只要快速打开,就可以利用这个命令写一个简单的脚本文件,内容如下:
这样就一步到位,很快打开一个截图图片。这个是 Windows 中的 bat 命令格式。
延伸:一些恶意软件利用设备 root 之后,运行该命令就可以获取用户当前屏幕信息,对于盗取账号非常危险。
10.adb shell screenrecord
说明:录屏操作。
用法:adb shell screenrecord 视频保存路径。
案例:
这个命令其实和上面截屏命令差不多,只不过这个是录制屏幕,对于测试人员来说更加重要,有时候想复现问题步骤,那么就可以采用这个命令进行录屏功能。
延伸:现在很多录屏软件(在 5.0 之前版本)可以在 root 之后用这个命令进行录屏功能。
11.adb shell input text
说明:输入文本内容。
用法:adb shell input text[需要输入文本框内容]
案例:
让需要输入内容的文本框获取焦点:
注意:这个命令也可以模拟物理按键、虚拟键盘、滑动、滚动等事件。
延伸:这个命令对于需要输入一大堆信息到文本框中的情况非常有用,比如在 PC 端有一段内容,想输入到手机的某个搜索框中,那么可以通过把这段内容发送到手机,然后再复制操作。但是有了这个命令就非常简单,先让想要输入的文本框获取焦点,然后运行这个命令即可。
12.adb forward
说明:设备的端口转发。
用法:adb forwrad[(远程端)协议:端口号][(设备端)协议:端口号]
案例:
这个命令在 IDA 调试中非常有用。
13.adb jdwp
说明:查看设备中可以被调试的应用的进程号。
用法:adb jdwp
案例:
这个命令或许用途不是很多,但是在调试的时候还是有点用途。
14.adb logcat
说明:查看当前日志信息。
用法 1:adb logcat-s tag
案例:adb logcat-s fb
用法 2:adb logcat|findstr pname/pid/keyword
案例:adb logcat|findstr cn.wjdiankong.demo
这个命令大家都不陌生,也是重中之重,有的同学或许会好奇,为何不用 AS 查看日志了,但是有时候 AS 不能满足需求,比如想开多个日志窗口,这时候可以打开多个 cmd 窗口利用这个命令查看日志信息即可。用得最多的就是-s 参数,可以直接查看对应的 tag 日志信息,利用 findstr 进行信息过滤:
这里因为是在 Windows 下,所以用 findstr 进行信息过滤了,当然这个命令也可以直接在 adb shell 运行之后,比如:
这样就可以用 grep 进行信息过滤了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论