adb常用操作 adb常用操作 安卓日常开发和逆向中常用的shell命令与非shell命令 基础的shell命令 逆向常用的非shell命令 逆向中常用的shell命令

1.连接指定设备

adb -s 127.0.0.1:5555 shell

2.给某个app发送广播

am broadcast -a "send_by_frank_test"
am broadcast -a "send_by_frank_test" --es aaa bbb

3.手机app无法抓包

- 前提:手机已root
- 详细步骤
  - 计算证书名
    - `openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate_saved.pem`
    - 算出数值,比如`3a1074b3`
  - 证书文件改名
    - 然后把原Charles证书`charles-ssl-proxying-certificate_saved.pem`改名为`3a1074b3.0`
  - 放到系统分区
    - 放到`/system/etc/security/cacerts/`
- 注意
  - 但是呢,现在多数手机都很难root了
    - 包括我之前的锤子M1L和很多常见品牌,比如小米、华为等,的最新手机
  - 如果真的可以root,那倒是容易此办法去解决ssl pinning的问题
    也可以直接移动证书
    用户证书路径:`/data/misc/user/0/cacerts-added`
    系统证书路径:`/system/etc/security/cacerts`
    `傻瓜模式无视我上面说的参考这里进行操作`https://www.cnblogs.com/pythonywy/p/12682315.html

4.adb命令将抓包工具证书从用户目录移动到系统目录,解决反扒对于本地证书认证

adb shell #连接手机进入shell模式 
#su root  #如果你不root权限可以试着这个一般都是root
cd /data/misc/user/0/cacerts-added  #移动至于用户证书目录
mount -o remount,rw /system   #将系统证书目录权限改成可读可写就可以移动文件不然不行
cp * /etc/security/cacerts/  #这里可以使用cp也可以使用mv
mount -o remount,ro /system  #移动完之后记得把权限改回只读

安卓日常开发和逆向中常用的shell命令与非shell命令

一.shell命令与非shell命令区别

shell命令不用先adb shell进入界面执行
非shell命令必须要 adb shell进入界面执行

二.基础非shell命令

1.安装app

adb install apk文件的绝对路径

2.卸载app

adb uninstall 包名

3.将设备文件拉去到本地

adb pull 设备文件路径 本地保存路径

4.将本地文件长传到设备

adb push 本地文件路径 设备文件保存路径

5.截屏

adb shell screencap -p 截图文件保存设备上的路径

直接保存到本地
adb sehll screencap -p /sdcard/tmp.png
adb pull /sdcard/tmp.png D:

6.录屏

adb shell screenrecord 录屏保存设备上的路径

7.输入文本内容

adb shell input text '输入的内容'

基础的shell命令

1.安装app

pm install apk路径

2.卸载app

pm uninstall 包名

3.启动应用

am start -n 包名/包名.activity名称

4.启动服务

am startservice -n 包名/包名.service名称

5,查看设备ip地址

netcfg

6.查看设备端口信息

netstat

7.运行java代码

app_process 代码运行目录 代码主类

8.运行一个dex文件

dalvikvm -cp dex文件 运行主类

逆向常用的非shell命令

1.查看当前运行app详细信息

adb shell dumpsys activity top

2.查看指定应用详细情况

adb shell dumpsys 包名

3.查看指定包名应用的数据库存储信息

adb shell dumpsys dbinfo 包名

4.端口转发

adb forward tcp:27042 tcp:27042

逆向中常用的shell命令

1.查看指定应用debug数据

run-as 包名

2.清空应用数据

adb shell pm clear 包名

2.查看当前进程内存信息

adb shell dumpsys meminfo 包名或者进程id