字数 677,阅读大约需 4 分钟
前言
ADB (Android Debug Bridge) 在 App 渗透测试中可能用到的功能。
前言 查看当前 app 的 package name adb activity 强制跳转 平板 APK 在手机上显示不全 截屏
查看当前 app 的 package name
查看当前 app 的 package name
adb shell dumpsys window | grep CurrentFocus // linux
adb shell dumpsys window | findstr CurrentFocus // windowsadb activity 强制跳转
前提条件:安卓机已 root,如果没 root,只能跳转 exported=true 的 activity
打开 AndroidManifest.xml 查看 activity
adb shell su -c "am start -W -n com.xxxx/com.xxxx.xxxx.xxxxmActivity"平板 APK 在手机上显示不全
这种情况可以先用 ADB 调低手机的逻辑像素密度,让同一块屏幕容纳更多界面内容。
先连接手机,确认当前数值。
adb shell wm density然后尝试调低密度。
adb shell wm density 207重新打开应用,界面一般就能完整显示了。那位师傅照着试了一遍,也确实解决了。
207 只是这次测试可用的数值,不一定适合所有手机。实际使用时可以根据屏幕效果慢慢调整。测试结束后,记得恢复系统默认设置。
adb shell wm density reset这里修改的是显示密度,也就是界面的缩放效果,并没有改变手机的真实分辨率。这个办法适合临时测试平板应用。如果应用写死了分辨率、横竖屏方向或者界面尺寸,还是得换平板、模拟器,或者让开发重新适配。
AOSP 的 wm 命令说明中,density 用于覆盖显示密度,size 才用于覆盖显示尺寸。
截屏
测试的时候方便对 app 进行截屏,但是无法对禁止截屏的页面进行截屏(这种情况就要么 xposed、要么 frida,或者拿其他手机拍照)
bat 脚本
@echo off
chcp 65001 > nul
echo ==============================================
echo 正在执行安卓屏幕截图操作...
echo ==============================================
:: 1. 在手机端执行截图并保存到指定路径
echo 第一步:在手机上截取屏幕...
adb shell screencap /sdcard/Download/demo.png
if %errorlevel% neq 0 (
echo 错误:截图失败!请检查ADB连接和手机权限。
pause
exit /b 1
)
:: 2. 将手机里的截图文件拉取到当前目录
echo 第二步:将截图文件拉取到电脑本地...
adb pull /sdcard/Download/demo.png .
if %errorlevel% neq 0 (
echo 错误:拉取文件失败!请检查文件路径是否正确。
pause
exit /b 1
)
:: 3. 删除手机里的临时截图文件
echo 第三步:删除手机里的临时截图文件...
adb shell rm /sdcard/Download/demo.png
if %errorlevel% neq 0 (
echo 警告:删除手机临时文件失败,请手动清理 /sdcard/Download/demo.png
)
echo ==============================================
echo 操作完成!截图文件已保存到当前目录(demo.png)
echo ==============================================
pause