客户端用于 ADB 通信的默认端口始终是 5037,设备使用从 5555 到 5585 的端口
adb devices用于显示所有已连接设备, 有时候会出现一些问题, 这时候需要使用adb kill-server与adb start-server
重启adb
Sdk/tools/android list avd
可以列出所有AVD可用的设备
C:\Android\Sdk\emulator\emulator -avd ${nameOfAvd}
启动AVD, 注意, 使用的是emulator目录下的emulator而非tools下的, 后者会报错PANIC: Missing emulator engine program for 'x86' CPU. 加代理的话不要直接在这里加,进去改 WIFI 设置
当可用设备多于一个时, 使用adb -s ${deviceName} shell来连接设备
adb shell pm list packages
可以显示设备中所有已安装的软件
adb logcat -d -f /data/local/logcats.log
转存logcat
adb install ${apkName}
可用于安装软件
adb push ${fileName} ${destinationPath}
可用于将二进制文件发送到Android设备, pull可用于拉, 一个例子: adb push .\tcpdump /data/local/tmp/tcpdump
需要获取root权限的话, 执行adb root
adb shell content query --uri ${uriOfContentProvider}
用于查询内容提供器
进入adb shell后dumpsys meminfo
查看应用所占内存, 还有linux中可用的df等命令
dex2jar反编译apk文件的命令是d2j-dex2jar.bat "${fileName}"
, 一个例子: d2j-dex2jar.bat "E:\Secure\Android\Demo\app-release.apk"
内容提供者的 URI 的命名标准惯例是以 content://
开始, 内容提供器除非显式指定, 否则默认所有应用都可以使用
http://androiddrawer.com 可以下载各种应用的旧版本
tcpdump-arm的用法是-s表示从每个封包抽取给定字节的数据(默认65535 字节), -v表示详细输出, -w指定写入原始数据包的文件, 一个例子: ./tcpdump -v -s 0 -w output.pcap
记得给tcpdump加可执行权限
android 4.0以上可以为wifi手动设置代理
有一个莫名其妙的问题, 电脑使用手机热点然后Burp拦截不到模拟器的请求, 换WiFi却可以
Android使用burp进行https拦截时会导致网站无法访问, 可以通过设置自定义CA证书解决, 创建CA证书步骤见博文使用火狐创建CA证书, 之后将其push到Android中, 在安卓中进入setting-> Security & location-> Encryption & credentials-> Install from sdcard选择证书, 这适用于所有应用, 此时该https站点即可正常拦截与访问
Android 文件系统的主分区通常被分区为 YAFFS2(Yet Another Flash File System 2)
adb shell dmesg
用于打印内核信息
adb shell getprop
用于打印设备信息
adb backup ${packageName} -f ${destinationFileName}
可用于备份应用程序与其数据, 扩展名为ad
一个感染应用的方法是, 创建一个包含恶意代码的服务, 然后使用广播等进行服务的触发, 不过需要注意如果需要额外权限的话需要自行添加
android 4.0+ 启用了地址空间布局随机化(ASLR)
apk如果被反编译,原有的签名将不会保留,但apk必须要有一个签名才能安装到手机上,所以需要重新签名