0%

adb工具的使用笔记

前言

由于所在部门是金融行业的安全服务部门,所以很多时候都要进行银行、金融业的渗透测试,其中很多都是小程序、app等移动端应用。所以adb是必须要掌握的,我以前也从来没玩儿过andriod,但是还是迫于业务需求,自己学了一段时间。后来我想如果写出来可能更有条理些,自己也能复习一遍。所以就写了这篇。
这篇文章没啥技术难点,甚至它只是我的个人笔记。我讲述下我在工作中是怎么用adb的,后面如果有时间我也会写写frida,当然frida就复杂的多了。下面还是看看adb这个工具吧。

介绍

ADB是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的一个玩具。如果你观察仔细,很多刷机、刷系统的软件都是用的adb来进行操作的,这也就是为什么他们直接插上USB并打开USB调试功能就能刷机、安装等等。但是如果权限过高,刷机软件也是可以给你装点不可见的应用的。所以还是慎重用刷机软件吧!

直接上手

下载ADB直接去官网下载:https://developer.android.com/studio/releases/platform-tools.html
选择合适的系统下载就行了,然后环境变量想配就配,无所谓的东西,反正你也可以直接到目录下运行adb。

adb支持两种连接方式:USB 和 wifi(不常用)
能用USB还是用USB吧wifi 有时候会出问题 我从来不用。
下面直接找个root手机,我手里的是 魅族s6 : andriod7.0 还是建议用真机,模拟器总是出一堆问题。没钱买测试机的当我没说。
连接USB(一端手机,一端电脑) 打开USB的调试模式(在设置里面,但具体位置每个手机不一样),然后打开adb所在目录命令行直接运行adb shell (这是你只插一台手机的情况)。
如果你插了多台手机你可以:

  • adb devices //看下都是哪几个手机 哪几个编号

  • adb -s b21b8569 shell //指定设备号进入shell

  • adb shell + 命令 //这样就不用每次进入交互了,直接执行命令。

PS:有时候会出现找不到手机的情况,这时候如果你已经开启了USB调试并且手机也是ROOT权限,那么就是adb的配置问题了,直接在C:\Users<用户名>.android\adb_usb.ini中添加一行:0x2a45
,然后在cmd中执行 adb kill-server adb start-server adb devices 就可以看到设备了。其它操作系统同理

ok 现在你可以whoami看下,一般都是普通权限,直接su就是root了。如果你需要把文件copy出来,首先不要直接copy,先把文件放到 /data/local/tmp 目录下,这是一个临时目录,是我的很多同事都用来存文件的目录。记住它,嗯。然后:

  • chmod 777 文件名 //加权限 要不然脱不下来 即便他是临时目录也是要权限的啊。
  • adb pull 手机路径 电脑路径 //把手机路径的文件拉到电脑路径下
  • adb push 电脑路径 手机路径 //和上面相反 注意斜杠不相同(windows和linux)

PS:很多时候要认证看报错,而不是盲目去百度。脱不下来传不上去很多都是权限问题。

一般我们不需要启动停止ADB服务,除非你手欠,或者就是要重启,请:

  • adb kill-server
  • adb start-server

每次进入命令行都需要su 是不是很烦?没事我们可以解决:

  • adb root //直接root 启动adb 以后adb shell 直接就是 root权限了

有时候我们的端口可能正在被占用,这时候就需要修改adb的端口:

  • adb -P start-server //默认是5037 一般都不会占用的

有时候我们需要看一下app的包是哪个方便我们进行hook:

  • adb shell pm list packages //列出当前所有运行中的包

安装/卸载apk:

  • adb install 1.apk //有时候手机会弹窗、需要点确认。
  • adb uninstall 1.apk

好玩儿的一些操作手机的指令:

  • cat /data/misc/wifi/*.conf //查看连接过的wifi密码
  • adb shell input keyevent
    keycode 含义
    3 HOME 键
    4 返回键
    5 打开拨号应用
    6 挂断电话
    24 增加音量
    25 降低音量
    26 电源键
    27 拍照(需要在相机应用里)
    64 打开浏览器
    82 菜单键
    85 播放/暂停
    86 停止播放
    87 播放下一首
    88 播放上一首
    122 移动光标到行首或列表顶部
    123 移动光标到行末或列表底部
    126 恢复播放
    127 暂停播放
    164 静音
    176 打开系统设置
    187 切换应用
    207 打开联系人
    208 打开日历
    209 打开音乐
    210 打开计算器
    220 降低屏幕亮度
    221 提高屏幕亮度
    223 系统休眠
    224 点亮屏幕
    231 打开语音助手
    276 如果没有 wakelock 则让系统休眠

刷机相关命令:
adb reboot recovery //重启到 Recovery 模式
adb reboot //从 Recovery 重启到 Android
adb reboot bootloader //重启到 Fastboot 模式

总结

其实adb还有很多姿势,我介绍的可能只是冰山一角吧。但是这些对于我来说已经够用了,而且远远满足我的工作需求,所以你如果和我一样只是做些测试工作,那么这些东西差不多够用,如果你想把它当玩具,最好还是去阅读下官方文档吧。


采用署名-非商业性使用-相同方式共享 4.0(CC BY-NC-SA 4.0)许可协议
「分享也是一种学习」