手把手教你用Scrcpy+FFmpeg,为你的移动安全测试搭建一套免费高效的录屏分析环境
手把手教你用Scrcpy+FFmpeg搭建移动安全测试录屏分析环境
在移动安全测试领域,能够清晰记录和复现漏洞场景是每个研究人员的刚需。想象一下:当你发现一个精妙的组件劫持漏洞时,如何向团队展示完整的攻击链?当需要制作技术分享视频时,怎样高效产出高清素材?这套基于Scrcpy和FFmpeg的开源方案,将帮你构建从设备投屏到专业级视频处理的全流程工作台。
1. 环境准备与工具链配置
1.1 硬件需求清单
- Android设备:建议Android 10+系统并开启开发者模式
- 主机配置:
- Windows/macOS/Linux均可
- 至少4GB空闲内存
- 支持H.264硬解码的显卡(NVIDIA/Intel核显优先)
1.2 核心工具安装
通过包管理器快速部署基础环境:
# macOS (Homebrew) brew install scrcpy ffmpeg # Ubuntu/Debian sudo apt install scrcpy ffmpeg # Windows (Scoop) scoop install scrcpy ffmpeg提示:若需GPU加速,Windows用户建议下载官方预编译版FFmpeg
2. 超低延迟投屏实战
2.1 Scrcpy高级参数调优
基础投屏命令仅需:
scrcpy但安全测试场景需要更专业的配置:
scrcpy \ --bit-rate 8M \ # 提升画质 --max-fps 60 \ # 高帧率模式 --turn-screen-off \ # 设备黑屏运行 --stay-awake \ # 防止休眠 --prefer-text # 优化文本显示2.2 多设备管理技巧
当同时测试多台设备时,通过序列号指定目标:
adb devices scrcpy -s 设备序列号3. 专业级录屏方案
3.1 FFmpeg录制配置
直接录制Scrcpy视频流:
ffmpeg -f gdigrab -i desktop -vf "crop=1080:1920:0:0" -c:v libx264 -preset ultrafast output.mp4关键参数解析:
| 参数 | 作用 | 推荐值 |
|---|---|---|
| -preset | 编码速度 | ultrafast/superfast |
| -crf | 画质控制 | 18-28 (值越小画质越高) |
| -vf scale | 分辨率缩放 | -1:720 (保持比例缩放到720p) |
3.2 自动化脚本示例
创建record.sh实现一键录制:
#!/bin/bash timestamp=$(date +%Y%m%d_%H%M%S) ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0+0,0 -c:v libx264 -preset fast -crf 18 "recording_${timestamp}.mp4"4. 后期处理与效率提升
4.1 视频转GIF优化
避免直接转换导致的体积爆炸:
ffmpeg -i input.mp4 -vf "fps=15,scale=640:-1:flags=lanczos" -c:v gif -f gif - | gifsicle --optimize=3 > output.gif4.2 关键帧提取技巧
快速定位漏洞触发时刻:
ffmpeg -i input.mp4 -vf select='eq(pict_type,I)' -vsync vfr keyframes_%03d.png4.3 隐私信息自动模糊
处理敏感内容时使用马赛克滤镜:
ffmpeg -i input.mp4 -vf "drawbox=x=100:y=200:w=300:h=100:color=black:t=fill" output.mp45. 高级应用场景
5.1 自动化测试录制
结合ADB实现无人值守录制:
adb shell screenrecord --time-limit 180 /sdcard/demo.mp4 adb pull /sdcard/demo.mp45.2 双屏画中画效果
合并设备录屏和操作者摄像头:
ffmpeg -i screen.mp4 -i facecam.mp4 -filter_complex "[1]scale=iw/4:ih/4 [pip]; [0][pip] overlay=main_w-overlay_w-10:10" final.mp4这套工作流在实际漏洞报告中已帮助我节省了40%的文档制作时间。特别是在处理时序敏感的劫持攻击时,逐帧分析功能让攻击过程的可视化变得异常清晰。
