[IOV安全入门] 二. Android安全之ADB常用命令


欢迎新同学的光临
… …
人若无名,便可专心练剑


我不是一条咸鱼,而是一条死鱼啊!


0x01 ADB 命令(主)

  • 查看当前应用的activity信息
adb shell dumpsys activity top
# 把系统中所有应用运行的四大组件都会打印出来
adb shell dumpsys >> info.txt
start info.txt
  • 查看指定包名应用的详细信息
adb shell dumpsys package  xxx

或进入adb shell使用下面的命令
dumpsys package xxx
# 清空应用数据
adb shell pm clear xxx
  • 查看指定进程名或者进程id的内存信息
adb shell dumpsys meminfo   xxx
  • 查看指定包名应用的数据库存储信息(包括存储的SQL语句)
adb shell dumpsys dbinfo xxx
  • 安装应用包apk文件
adb intall  xxx.apk

adb install test.apk -r 覆盖安装,保留数据和缓存文件  -d 解决低版本version问题  -s 安装apk到sd卡
  • 卸载应用
adb uninstall  xxx.apk

adb uninstall -k <package_name>

可选参数-k的作用为卸载软件但是保留配置和缓存文件

adb shell
      cd data/app
      rm apk包
      exit
      adb uninstall apk包的主包名
      adb install -r apk包
  • 删除系统应用
adb remount (重新挂载系统分区,使系统分区重新可写)
      adb shell
      cd system/app
      rm *.apk
  • 将设备中的文件放到本地
adb pull  目标系统中的文件路径(a.txt)  本机系统要存放取出来的路径(a.txt)   
  • 将本地文件放到设备中
adb push  本机系统中的文件路径(a.txt)    目标系统中要存放的路径(a.txt)   
  • 截屏操作
adb shell screencap -p /sdcard/test.png
adb pull /sdcard/test.png  D:\img\
start D:\img\test.png
  • 录屏操作
adb shell screenrecord /sdcard/test.mp4
  • 输入文本内容
adb shell input text 'xxx'
  • 设备的端口转发
adb forward [(远程端)协议:端口号] [(设备端)协议:端口号]
adb forward tcp:23946 tcp:23946
adb forward tcp:8700 jwdp:1786
  • 查看设备中可以被调试的应用的进程号
adb jdwp
  • 查看当前日志信息
adb logcat

用法1:adb logcat -s tag
案例: adb Logcat -s fb

用法2:adb logcat |findstr pname/pid/keyword
案例: adb Logcat |findstr cn.test.demo

或进入adb shell使用下面的命令
Logcat grep tencent
  • 非root设备中查看指定debug模式的包名应用沙盒数据
run-as cn.test.demo
  • 查看设备的进程信息,或者指定进程的线程信息
ps | grep 过滤内容
ps | grep cn.test.demo
ps -t 19977
  • 清空指定包名应用的数据
pm clear  grep cn.test.demo
  • 安装设备中的apk文件
pm install /sdcard/test.apk
  • 卸载设备中的应用
pm uninstall cn.test.demo
  • 启动设备中的应用
am start -n [包(package)名]/[包名].[活动(activity)名称]
am start -n com.androidtest/com.androidtest.test
  • 启动一个服务
am startservice -n [包 (package) 名]/[包名].[服务(service)名]
am startservice -n com.androidtest2/com.androidtest.test2
  • 发送一个广播
am broadcast -a [广播动作]
  • 查看设备的ip地址
netcfg
  • 查看设备的端口号信息
netstat
  • 运行Java代码(特殊场景使用,把dx命令把dex文件转化成jar包)
app_process [运行代码目录] [运行主类]

export CLASSPATH=/data/test.jar
exec /system/bin/app_process /data/cn.test.main
  • 运行一个dex文件
dalvikvm -cp [dex文件] [运行主类]
dalvikvm -cp /data/test.dex cn. Widiankong Main
  • 查看当前应用的CPU消耗信息
top [-n/-m/-d/-s/-t]

-m // 最多显示多少个进程
-n // 刷新次数
-d // 刷新间隔时间(默认5 秒)
-s // 按哪列排序
-t // 显示线程信息而不是进程
  • 查看系统属性值
getprop [属性值名称]
  • 用aapt操作apk命令(查看apk中的信息以及编辑apk程序包)
aapt dump xmltree [apk包] [需要查看的资源文件xml ]
  • 用dexdump操作dex命令(查看dex文件的详细信息)
dexdump [ dex文件路径]
  • 查看当前进程的内存加载情况(查看当前进程的内存映射信息,比如加载了哪些so文件,dex文件等)
cat /proc/[pid]/maps

用法:cat /proc/663/maps
  • 查看进程的状态信息
cat /proc/[pid]/status

用法:cat /proc/663/status
  • 查看当前应用使用的端口号信息
cat /proc/[pid]/net/tcp/tcp6/udp/udp6

用法:cat /proc/663/net/tcp/tcp6/udp/udp6

0x02 ADB 命令(次)

  • 查看连接设备
adb devices
  • 获取手机root权限
adb root
  • 重新挂载系统分区,使系统分区重新可写
adb remount
  • 进入到手机设备Shell界面中去
adb shell

abd shell -s 模拟器编号 命令
  • 启动和关闭ADB服务
# 关闭服务
adb kill-server

# 启动服务
adb start-server
  • adb帮助命令
adb help
  • 查看bug报告
adb bugreport
  • 记录无线通讯日志
adb shell
logcat -b radio
  • 获取设备的ID和序列号
adb get-product
adb get-serialno
  • 访问数据库SQLite3
adb shell
sqlite3
  • 进入系统内指定文件夹
cd system/sd/data

#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹
  • 点亮屏幕
adb shellinput keyevent 80
  • 查看adb版本
adb version
  • 将system分区重新挂在为可读写分区,此命令在操作系统目录时很重要
adb remount
  • 重启设备,可选参数进入bootloader(刷机模式)或recovery(恢复模式)
adb reboot bootloader
adb reboot recovery
  • 杀掉某个进程,一般用于模拟某个bug复现
adb shell kill pidNumber

# 列出进程列表及其pid
adb shell ps

# 查看指定进程信息
adb shell ps -x pid
  • 查看单个应用程序的最大内存限制
adb shell getprop | grep heapgrowthlimit

得到的结果为128M: [dalvik.vm.heapgrowthlimit]: [128m]

这就是说Dalvik Heap size的最大值超过了128M,就很可能发生OOM
  • 查看sdk版本
adb shell getprop | grep version
  • 查看设备型号信息
adb shell getprop | grep product
  • 获取序列号
获取到的序列号即为adb devices列出来的序列号

adb get-serialno
  • 查看wifi密码(需要root权限)
adb shell cat data/misc/wifi/*.conf
  • 查看wifi_mac
adb shell cat /sys/class/net/wlan0/address
  • 查看后台services信息
adb shell service list
  • ADB 录制屏幕命令
adb shell screenrecord /sdcard/test.mp4
  • 打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
停止应用
adb shell am force-stop package
查看当前 Activity 名称
adb shell dumpsys activity | findstr “mFocusedActivity”
  • 移动文件
adb shell mv /sdcard/1.txt /sdcard/2.text
移动同一目录下文件相当于重命名文件

参考链接

https://cloud.tencent.com/developer/article/1797357

https://zhuanlan.zhihu.com/p/43731848


我自横刀向天笑,去留肝胆两昆仑


猜你喜欢

转载自blog.csdn.net/Ananas_Orangey/article/details/121448565