executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
re-mobile-forensics移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线。 触发词:移动取证、手机取证、ADB备份、iTunes备份、手机数据提取。
Independent GitHub snapshot · Automated classification · Original documentation governs
apt install adb / dnf install android-tools;macOS: brew install android-platform-tools;Windows: 官方平台工具adb --version;adb devices 需设备开启 USB 调试并授权(屏幕弹窗确认)apt install libimobiledevice-utils;macOS: brew install libimobiledevice;Windows: 官方构建idevice_id -l(列出设备)nelenkov/android-backup-extractor:java -jar abe.jar unpack backup.ab backup.tar)或等价 python 脚本;验证: java -jar abe.jar --help(需 Java,安装见 [[re-java]])idevicebackup2 + manifest 解析(见步骤 2)apt install sqlite3;macOS: brew install sqlite3;Windows: 官方构建);验证: sqlite3 --versionapt install foremost;macOS: brew install foremost);验证: foremost -h按顺序执行;设备操作遵循授权边界(红线:仅授权设备)。取证顺序:隔离(断网/飞行模式)→ 记录设备状态(版本/解锁/加密/网络)→ 只读提取优先 → 产物存档。每步产物存档(路径 + sha256,见 [[re-triage]]);远端擦除与保全细节见 [[gotchas]]。
Android 提取:
adb backup -f backup.ab -all # 全量备份(应用需允许备份)
adb backup -f app.ab -apk -noobb com.target.app # 单应用备份(按包名)
adb shell run-as com.target.app ls data # 应用沙箱(debuggable 应用)
# root 设备:dd 镜像关键分区 / adb pull /data 直接提取
adb shell bmgr list transports(确认系统备份服务可用;无输出/报错 → adb backup 不可用,换路径)adb shell getprop ro.build.version.release)+ 加密/解锁状态(影响后续解析路径)adb backup 现状:Android 12 起官方弃用,targetSDK 31+ 的应用数据不再导出(仅 targetSDK<31 或 debuggable 应用有效,Play 商店新应用基本不可用)——失效时换 root/镜像提取(判据见 [[decision-tree]])ANDROID BACKUP + 版本/标志字节(压缩/加密位)+ 可选 AES-256-CBC 加密参数 + tar(可 deflate 压缩)负载file backup.ab 验魔数与大小abe unpack backup.ab backup.tar(加密备份密码为末尾位置参数:abe unpack backup.ab backup.tar <密码>,或设 ABE_PASSWD 环境变量)→ tar tf 列内容 → sqlite3/plist 分析run-as(debuggable)/ root 设备直接读;allowBackup=false 的应用备份为空且无警告(见坑 2)adb exec-out run-as com.target.app cat files/x.db > x.db(exec-out 不做终端转义)adb shell ls /dev/block/by-name/ 或 cat /proc/partitions)再 dd 目标分区;镜像产物大,先确认磁盘空间iOS 提取:
idevicebackup2 backup ./backup_dir
# 备份结构:Manifest.plist(元数据)+ Manifest.db(文件索引)+ 按 fileID 分目录的文件
IsEncrypted 键(加密备份下 Manifest.plist 仍可明文读取,密钥材料 BackupKeyBag/ManifestKey 就在其中);被加密的是 Manifest.db 与各文件内容——需备份密码解密(无密码则标注不可提取)~/Library/Application Support/MobileSync/Backup(每设备独立子目录,核对 UDID 防混设备)删除恢复与时间线:
-c);恢复物用 magic/可读性验证([[re-triage]] 初勘)证据整合与交付:
allowBackup 或 targetSDK≥31(Android 12+);对策——换 root/镜像提取,标注路径局限adb devices 显示 unauthorized/offline;原因——锁屏未解锁/USB 调试授权过期;对策——先解锁(授权范围内)再连接,记录授权状态adb devices 确认序列号,命令加 -s <serial>