运动健康类 App 在手机取证和可穿戴设备取证中越来越常见。
虽然在此次盘古石初赛中,团队怀疑手表题数据在手机中,但随后复盘并未发现。同时发现手边数据有明显加密痕迹,故大概率数据还存在手表中,只是未找到正确方法解密。
在比赛和案件分析中,这类软件经常用于回答以下问题:
跑步地点在哪里?
运动轨迹是否真实?
平均配速是多少?
心率数据是否异常?
运动记录来自手机还是手表?
截图是否可能伪造?
用户绑定过哪些穿戴设备?
运动数据是否同步到云端或系统健康平台?
运动软件取证不能只看一张截图。截图只能作为线索,不能直接作为最终证据。
应当同时结合:
App 数据库
运动记录文件
GPS 轨迹点
心率 / 步频 / 配速数据
设备绑定信息
系统健康数据库
相册截图
云同步痕迹
通知和日志
可穿戴设备数据
Keep、华为运动健康、Zepp、Zepp Life、小米运动健康 / Mi Fitness 这几类 App 都属于运动健康数据入口。实际取证时,不能只根据 App 界面判断,应当回到原始数据库、缓存、配置文件、系统健康数据和可穿戴设备同步痕迹中进行交叉验证。
一、运动软件取证的核心价值
运动软件数据的价值主要体现在五个方面。
1. 时间价值
运动记录通常包含:
运动开始时间
运动结束时间
运动持续时间
暂停时间
同步时间
上传时间
创建时间
修改时间
这些时间可以用来还原用户在某一时间段是否处于运动状态。
但需要注意:
运动开始时间 ≠ 数据上传时间
运动结束时间 ≠ 截图保存时间
截图时间 ≠ 真实运动时间
例如,某张 Keep 跑步截图显示 19:32 开始运动,但相册中截图创建时间是 22:10。这只能说明截图在 22:10 左右保存,不能直接说明用户在 19:32 运动。需要继续查看 App 原始数据库或轨迹数据。
2. 空间价值
户外跑步、骑行、徒步等运动通常会产生位置数据。
常见数据包括:
经度
纬度
海拔
GPS 时间
轨迹点序号
速度
距离
配速
定位精度
这些数据可以用于判断:
用户主要运动区域
是否经过某地点
是否接近案发现场
轨迹是否存在跳点
是否可能是手动伪造
3. 身体状态价值
运动软件或手表可能记录:
心率
最大心率
平均心率
静息心率
步频
步幅
卡路里
压力
血氧
睡眠
恢复状态
最大摄氧量
这些数据不能直接用于医学判断,但可以辅助判断运动记录是否自然。
例如:
跑步 5 公里但全程心率为 0
配速很快但步频数据缺失
轨迹显示移动但心率完全没有变化
公里数很高但无任何 GPS 轨迹
这些都需要进一步核查。
4. 设备关联价值
运动记录可能来自:
手机 GPS
智能手表
手环
跑步机
第三方平台同步
手动录入
导入数据
所以必须确认数据来源。
同一条运动记录,如果能同时在手机 App、系统健康数据库、手表绑定记录、云同步日志中找到对应痕迹,可信度会更高。
5. 反伪造价值
运动软件常被用于生成打卡截图、运动截图、轨迹截图。在取证中,不能只看截图,而要分析:
截图是否来自真实 App
截图时间是否与运动时间匹配
轨迹点是否连续
配速是否合理
心率是否存在
是否存在原始运动记录
是否存在系统健康同步记录
是否存在云端同步痕迹
二、常见 App 与包名线索
不同手机和地区的 App 名称可能不同,取证时应以检材中的 packages.xml、应用列表和沙箱目录为准。
以下包名仅作为初筛参考:
| 应用 |
常见名称 |
常见 Android 包名 |
关注点 |
| Keep |
Keep / Keep AI 运动教练 |
com.gotokeep.keep |
跑步、骑行、课程、运动轨迹、社区动态、截图 |
| 华为运动健康 |
HUAWEI Health / 运动健康 |
com.huawei.health |
华为手表、手环、心率、血氧、睡眠、跑步轨迹 |
| Zepp |
Zepp / Amazfit |
com.huami.watch.hmwatchmanager |
Amazfit 手表、运动记录、心率、设备管理 |
| Zepp Life |
Zepp Life / 原 Mi Fit |
com.xiaomi.hm.health |
小米手环、体脂秤、睡眠、步数、运动记录 |
| Mi Fitness |
Mi Fitness / Xiaomi Wear / 小米运动健康 |
com.xiaomi.wearable |
小米手表手环、跑步、骑行、健康数据 |
分析时可以先搜包名:
find . -iname "*gotokeep*" -o -iname "*huawei*health*" -o -iname "*huami*" -o -iname "*xiaomi*health*" -o -iname "*wearable*" 2>/dev/null
也可以从系统安装信息中查:
grep -Rina "com.gotokeep.keep\|com.huawei.health\|com.huami.watch.hmwatchmanager\|com.xiaomi.hm.health\|com.xiaomi.wearable" ./ 2>/dev/null
三、运动软件常见数据类型
运动健康类 App 的数据通常分为九类。
1. 用户账号数据
常见字段:
uid
user_id
account_id
nickname
phone
email
avatar
gender
birthday
height
weight
login_token
session
refresh_token
作用:
确认账号归属
确认登录状态
关联其他设备和云端数据
2. 设备绑定数据
常见字段:
device_id
mac
bluetooth_mac
sn
serial_number
model
firmware
bind_time
last_sync_time
device_name
作用:
判断运动记录是否来自手表或手环
确认设备型号
确认最后同步时间
3. 运动记录主表
常见字段:
workout_id
sport_id
track_id
start_time
end_time
duration
distance
calorie
avg_pace
avg_speed
max_speed
avg_heart_rate
max_heart_rate
step_frequency
step_count
source
sync_status
作用:
回答运动时间、距离、时长、配速、卡路里、心率等基础问题
4. GPS 轨迹点
常见字段: